MySQL中四種常用儲存引擎的介紹

2021-08-26 15:01:48 字數 1692 閱讀 4049

預設的mysql外掛程式式儲存引擎,它是在web、資料倉儲和其他應用環境下最常使用的儲存引擎之一。不支援事務、也不支援外來鍵,優勢是訪問速度快,對事務完整性沒有 要求或者以select,insert為主的應用基本上可以用這個引擎來建立表,支援3種不同的儲存格式,分別是:靜態表;動態表;壓縮表

靜態表:表中的字段都是非變長字段,這樣每個記錄都是固定長度的,優點是儲存非常迅速,容易快取,出現故障容易恢復;缺點是占用的空間通常比動態表多(因為儲存時會按照列的寬度定義補足空格)ps:在取資料的時候,缺省會把字段後面的空格去掉,如果不注意會把資料本身帶的空格也會忽略。

動態表:記錄不是固定長度的,這樣儲存的優點是占用的空間相對較少;缺點:頻繁的更新、刪除資料容易產生碎片,需要定期執行optimize table或者myisamchk-r命令來改善效能

壓縮表:因為每個記錄是被單獨壓縮的,所以只有非常小的訪問開支

具有提交、回滾和崩潰恢復能力的事務安全,包括acid事務支援。(提供行級鎖)。但是對比myisam引擎,寫的處理效率會差一些,並且會占用更多的磁碟空間以保留資料和索引。 

特點:支援自動增長列,支援外來鍵約束

memory儲存引擎使用存在於記憶體中的內容來建立表。每個memory表只實際對應乙個磁碟檔案,格式是.frm。memory型別的表訪問非常的快,因為它的資料是放在記憶體中的,並且預設使用hash索引,但是一旦服務關閉,表中的資料就會丟失掉。 

memory儲存引擎的表可以選擇使用btree索引或者hash索引,兩種不同型別的索引有其不同的使用範圍

hash索引優點: 

hash 索引結構的特殊性,其檢索效率非常高,索引的檢索可以一次定位,不像b-tree 索引需要從根節點到枝節點,最後才能訪問到頁節點這樣多次的io訪問,所以 hash 索引的查詢效率要遠高於 b-tree 索引。 

hash索引缺點: 不支援不精確查詢,因為hash演算法是基於等值計算的,所以對於「like」等範圍查詢hash索引無效,不支援;

memory型別的儲存引擎主要用於哪些內容變化不頻繁的**表,或者作為統計操作的中間結果表,便於高效地對中間結果進行分析並得到最終的統計結果,。對儲存引擎為memory的表進行更新操作要謹慎,因為資料並沒有實際寫入到磁碟中,所以一定要對下次重新啟動服務後如何獲得這些修改後的資料有所考慮。

允許mysql dba或開發人員將一系列等同的myisam表以邏輯方式組合在一起,並作為1個物件引用它們。對於諸如資料倉儲等vldb環境十分適合。merge儲存引擎是一組myisam表的組合,這些myisam表必須結構完全相同,merge表本身並沒有資料,對merge型別的表可以進行查詢,更新,刪除操作,這些操作實際上是對內部的myisam表進行的。

bdb:可替代innodb的事務引擎,支援commit、rollback和其他事務特性。

archive:為大量很少引用的歷史、歸檔、或安全審計資訊的儲存和檢索提供了完美的解決方案。

federated:能夠將多個分離的mysql伺服器鏈結起來,從多個物理伺服器建立乙個邏輯資料庫。十分適合於分布式環境或資料集市環境。

cluster/ndb:mysql的簇式資料庫引擎,尤其適合於具有高效能查詢要求的應用程式,這類查詢需求還要求具有最高的正常工作時間和可用性。

MySQL的四種常用儲存引擎

mysql有很多的儲存引擎,這裡寫一下四種比較常用的儲存引擎innodb,myisam,memory,archive。innodb是mysql現在的預設儲存引擎,也是事務性資料庫的首選儲存引擎,支援外來鍵和事務,同時支援的為行級鎖。主要有以下幾個特點 1.儲存結構 innodb將表中的資料儲存在表空...

MySQL中四種常用儲存引擎的介紹

mysql常用的四種引擎的介紹 1 myisam儲存引擎 不支援事務 也不支援外來鍵,優勢是訪問速度快,對事務完整性沒有 要求或者以select,insert為主的應用基本上可以用這個引擎來建立表 支援3種不同的儲存格式,分別是 靜態表 動態表 壓縮表 靜態表 表中的字段都是非變長字段,這樣每個記錄...

MySQL中四種常用儲存引擎的介紹

mysql常用的四種引擎的介紹 1 myisam儲存引擎 不支援事務 也不支援外來鍵,優勢是訪問速度快,對事務完整性沒有 要求或者以select,insert為主的應用基本上可以用這個引擎來建立表 支援3種不同的儲存格式,分別是 靜態表 動態表 壓縮表 靜態表 表中的字段都是非變長字段,這樣每個記錄...