首頁  >  文章  >  資料庫  >  介紹 MySQL 中的四種引擎

介紹 MySQL 中的四種引擎

Guanhui
Guanhui轉載
2020-05-21 11:26:172183瀏覽

介紹 MySQL 中的四種引擎

1、MyISAM 儲存引擎

不支援交易、也不支援外鍵,優點是存取速度快,對交易完整性沒有要求或以select,insert為主的應用基本上可以用這個引擎來創建表

#支援3種不同的儲存格式,分別是:靜態表;動態表;壓縮表

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

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

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

2、InnoDB 儲存引擎

此儲存引擎提供了具有提交、回滾和崩潰復原能力的事務安全。但是比較MyISAM引擎,寫的處理效率會差一些,並且會佔用更多的磁碟空間以保留資料和索引。

InnoDB儲存引擎的特點:支援自動成長列,支援外鍵約束

#3、Memory 儲存引擎

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

MEMORY儲存引擎的表可以選擇使用BTREE索引或HASH索引,兩種不同類型的索引有其不同的使用範圍

Hash索引優點:

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

Hash索引缺點: 那麼不精確查找呢,也很明顯,因為hash演算法是基於等值計算的,所以對於「like」等範圍查找hash索引無效,不支援;

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

4、Merge 儲存引擎

Merge儲存引擎是一組MyISAM表的組合,這些MyISAM表必須結構完全相同,merge表本身並沒有數據,對merge類型的表可以進行查詢,更新,刪除操作,這些操作實際上是對內部的MyISAM表進行的。

推薦教學:《MySQL教學

以上是介紹 MySQL 中的四種引擎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除