您好,登錄后才能下訂單哦!
InnoDB是一個高可靠,高性能的多用途數據庫存儲引擎。在MySQL5.7中InnoDB是默認使用的存儲引擎,當然,你可以配置其它存儲引擎,比如沒有通過ENGINE設置為InnoDB的建表語句。
InnoDB的關鍵特性
列舉以下重要幾點:
DML操作在ACID模式下執行(插入,更新,刪除操作,要注意的是查詢操作有時候也可能認為是DML操作,如select * from table for update),也就是關于事務的提交,回滾,故障恢復。
行級鎖和類似Oracle的非鎖定讀以及多用戶的支持。
聚集索引,InnoDB會根據表的主鍵在數據存儲的時候對數據進行排序以減少通過主鍵查詢時的I/O。每一個InnoDB表的主鍵就是一個聚集索引
在保證數據完整性方面,InnoDB支持外鍵,有外鍵存在時,數據在插入,更新和刪除的時候都有外鍵約束。
InnoDB特性
Storage limits 存儲限制 | 64TB | Transactions 事務 | Yes | Locking granularity 鎖粒度 | Row |
MVCC 多版本并發控制 | Yes | Geospatial data type support 地理坐標數據類型支持 | Yes | Geospatial indexing support 坐標索引支持 | Yes[a] |
B-tree indexes B-tree 索引 | Yes | T-tree indexes T-tree 索引 | No | Hash indexes 哈希索引 | No[b] |
Full-text search indexes 全文索引 | Yes[c] | Clustered indexes 聚集索引 | Yes | Data caches 緩存 | Yes |
Index caches 索引緩存 | Yes | Compressed data 壓縮功能 | Yes[d] | Encrypted data[e] 加密功能 | Yes |
Cluster database support 集群支持 | No | Replication support[f] 復制支持 | Yes | Foreign key support 外鍵支持 | Yes |
Backup / point-in-time recovery[g] 時間點恢復 | Yes | Query cache support 查詢緩存支持 | Yes | Update statistics for data dictionary 更新靜態字典數據 | Yes |
一些特性說明: [a] 在MySQL5.7.5以及更高的版本中InnoDB 支持地理位置。 [b] InnoDB 在自適應哈希索引內部使用哈希索引。 [c] 在MySQL 5.6.4 以及更高的版本中InnoDB 支持全文索。 [d] 表壓縮功能需要Barracuda 的文件格式 [e] 通過加密函數實現。 [f] 支持,但不是在引擎級別實現。 [g] 支持,但不是在引擎級別實現。. |
各種存儲引擎的對比將在后面的章節中詳細列出。
選擇InnoDB的理由如下:
如果你的服務器由于硬件或軟件的問題而崩潰,你不用考慮數據庫當時發生的事情,也不需要你在數據庫重新啟動后做任何特殊處理。InnoDB的故障恢復機制會自動幫你完成所有在故障發生前的提交,另外,對沒有提交的動作不做任何操作。
InnoDB存儲引擎對于訪問的數據在內存中持有一個緩存表數據和索引的緩存池,用戶的一些查詢可以從內存中的緩存池中直接返回數據。這種緩存方式適用于很多提高處理速度的場景。在一臺專用的數據庫服務器上,InnoDB緩存池的內存占用通常都高于總內存的80%。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。