MySql中的儲存引擎有:1、MyISAM引擎;2、MyISAM Merge引擎;3、InnoDB引擎;4、memory引擎;5、archive引擎。
MySql中的儲存引擎
1、MyISAM引擎
這種引擎是mysql最早提供的,這種引擎又可以分為靜態MyISAM、動態MyISAM 和壓縮MyISAM三種:
(1)靜態MyISAM:如果資料表中的各資料列的長度都是預先固定好的,伺服器會自動選擇這種表類型。因為資料表中每一筆記錄所佔用的空間都是一樣的,所以這種表存取和更新的效率非常高。當資料受損時,恢復工作也比較容易做。
(2)動態MyISAM:如果資料表中出現varchar、xxxtext或xxxBLOB欄位時,伺服器將自動選擇這種表類型。相對於靜態MyISAM,這種表儲存空間比較小,但由於每筆記錄的長度不一,所以多次修改資料後,資料表中的資料就可能離散的儲存在記憶體中,進而導致執行效率下降。同時,記憶體中也可能會出現很多碎片。因此,這種類型的表格要經常使用optimize table 指令或最佳化工具來進行碎片整理。
(3)壓縮MyISAM:以上說到的兩種類型的表都可以用myisamchk工具壓縮。這種類型的表進一步減小了佔用的存儲,但是這種表壓縮之後不能再被修改。另外,因為是壓縮數據,所以這種表在讀取的時候要先時行解壓縮。
但是,不管是何種MyISAM表,目前它都不支援事務,行級鎖定和外鍵約束的功能。
2、MyISAM Merge引擎
這種類型是MyISAM類型的一種變體。合併表是將幾個相同的MyISAM表合併為一個虛表。常應用於日誌和資料倉儲。
3、InnoDB引擎
InnoDB表格型別可以看成是對MyISAM進一步更新的產品,它提供了交易、行級鎖定機制和外鍵約束的功能。
4、memory(heap)引擎
這種類型的資料表只存在於記憶體中。它使用散列索引,所以資料的訪問速度非常快。因為是存在於記憶體中,所以這種型別常應用於臨時表中。
5、archive引擎
這種型別只支援select 和 insert語句,而且不支援索引。常應用於日誌記錄和聚合分析方面。
以上是mysql常用的儲存引擎有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!