翻譯5.7手冊InnoDB部分第一篇——InnoDB介紹


1. InnoDB介紹

InnoDB是一個高可靠,高性能的多用途數據庫存儲引擎。在MySQL5.7InnoDB是默認使用的存儲引擎,當然,你可以配置其它存儲引擎,比如沒有通過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] 支持,但不是在引擎級別實現。.

 

各種存儲引擎的對比將在後面的章節中詳細列出。

1.1     爲什麼要選擇InnoDB

選擇InnoDB的理由如下:

  • 如果你的服務器由於硬件或軟件的問題而崩潰,你不用考慮數據庫當時發生的事情,也不需要你在數據庫重新啓動後做任何特殊處理。InnoDB的故障恢復機制會自動幫你完成所有在故障發生前的提交,另外,對沒有提交的動作不做任何操作。

  • InnoDB存儲引擎對於訪問的數據在內存中持有一個緩存表數據和索引的緩存池,用戶的一些查詢可以從內存中的緩存池中直接返回數據。這種緩存方式適用於很多提高處理速度的場景。在一臺專用的數據庫服務器上,InnoDB緩存池的內存佔用通常都高於總內存的80%

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章