MySQL 儲存引擎介紹

2021-08-14 08:15:52 字數 3452 閱讀 7884

show engines;

-- 檢視可供選用的儲存引擎

注:mrg_myisamndbcluster分別是merge 和 ndb的同義詞。

注:memory儲存引擎會把表放在記憶體裡,而非磁碟上;預設情況下,innodb 引擎會把表的資料索引儲存在它的系統表空間裡。

innodb 儲存引擎

mysql 的預設引擎,有以下幾項功能:

* 其表在執行提交回滾操作時是事務安全的,可以通過建立儲存點來實現部分回滾

* 在系統崩潰後可以自動恢復

* 外來鍵和引用完整性支援,包括級聯刪除和更新

* 基於行級別的鎖定多版本化,使得在執行同時包含有檢索和更新操作的組合條件查詢時,可以表現出很好的併發效能;

* 從 mysql 5.6 開始,innodb 支援全文搜尋fulltext 索引

myisam 儲存引擎

* 當儲存連續相似的字串索引值時,它會對鍵進行壓縮。也可開啟壓縮相似數字索引功能(pack_keys=1);

* 為auto_increatment提供了更多的功能;

* 每個 myisam 表都有乙個標記,在執行表檢查操作時被設定。還有乙個標記,用於表明該錶在上次使用後是否被正常關閉。伺服器會檢查標記並進行表修復

* 支援全文檢索fulltext 索引

* 支援空間資料型別spatial 索引

memory 儲存引擎

memory 儲存引擎會把表儲存在記憶體裡,並且表的行長度固定不變,所以相關操作非常快。

* 預設情況下,memory 表使用的是雜湊索引——對於「相等比較」非常快,對於」範圍比較」非常慢。只適合「=」、」<=>」不太適合」>」、」;

* memory 表裡的行使用長度固定不變的格式不能使用長度可變的資料型別blob 和 text。但是可以使用varchar(雖然長度可變,但是在 mysql 內部,被當做一種長度固定不變的 char 型別)。

如果要使用 「」 或 between 這樣的運算子查詢某個範圍內的值時,可以使用btree 索引來代替雜湊索引。

ndb 儲存引擎

是 mysql 的集群儲存引擎。對於這個儲存引擎,mysql 伺服器實際上變成了乙個其他程序(他們提供了對 ndb 表的訪問)的集群客服端集群節點會處理彼此間的通訊,從而在記憶體中實現對錶的管理。對於實現冗餘,這些表會在集群程序之間被複製。記憶體儲存提供了高效能,而集群機制則提供了高可用性,因此即使某個節點發生故障,整系統也不會崩潰。

其他儲存引擎

*archive 引擎提供了資料歸檔儲存功能。適用於大批量儲存那些」寫了就不會再更改」的行。可以使用insert 和 select;不能使用delete 或 update儲存時壓縮,檢索時解壓。archive 表包含乙個帶索引的 auto_increment 列,但其他列不能被索引。

*blackhole 引擎所建立的表,其寫操作會被忽略讀操作是返回空內容。這個資料庫等同於unix 系統上的 /dev/null 裝置

*csv 引擎在儲存資料時,會用逗號分隔值。對於每個表,它會在資料庫目錄裡建立乙個.csv 檔案。這是乙個普通文字檔案,其中每個錶行占用乙個文字行,但不支援索引

*federated 引擎提供了訪問由其他 mysql 伺服器進行管理表的能力。(就是說:federated 表的內容實際上位於遠端,當建立 fedreated 表時,需要指定一台執行著其他伺服器的主機,並提供該伺服器上的某個賬戶的使用者名稱和密碼。當要訪問 fedreated 表時,本地伺服器將使用這個賬戶鏈結那台遠端伺服器。)

*merge 引擎提供了一種把多個 myisam 表合併為乙個邏輯單元的手段。查詢乙個 merge 表時,相當於查詢其所有的成員表。好處:可以突破檔案系統對單個 myisam 表的最大尺寸所設定的限制。分割槽表可以替換 merge 表,並且不會受限於 myisam 表。

mysql儲存引擎介紹 MySQL儲存引擎簡單介紹

mysql使用的是外掛程式式儲存引擎。主要包含儲存引擎有 myisam。innodb,ndb cluster,maria。falcon,memory,archive,merge。federated。當中最為廣泛的是myisam 和innodb兩種儲存引擎,所以接下來對它們做簡介。myisam 儲存引...

mysql儲存引擎介紹 MySQL儲存引擎介紹

toc innodb儲存引擎 其特點十行鎖設計 支援危機,並支援型別與oracle的非鎖定讀,即預設讀取操作不會產生鎖。innodb通過使用多版本併發控制 mvcc 來獲取高併發性,並且實現了sql標準的4種隔離,預設為repeatable級別。同時使用一種被稱為next keylocking的策略...

MySQL儲存引擎介紹

1.mysql儲存引擎對比 如上圖所示,為幾種常見的儲存引擎的對比,當然還有像csv儲存引擎 不支援索引 和blackhole黑洞引擎 寫入的資料都會消失,一般用作資料複製的中繼 等,但myisam和innodb引擎是最常見的,myisam適用於事務的處理不多的情況,innodb適用於事務處理比較多...