MySQL數據庫存儲引擎

存儲引擎就是指表類型,數據庫存儲引擎決定了表在計算機中的存儲方式。

1,查詢mysql數據庫支持的存儲引擎類型:SHOW ENGINES \G("\G"的作用是讓結構顯示的更加美觀),部分結果如圖:


(1)Engine指存儲引擎名稱

(2)Support說明MySQL是否支持該類型引擎,YES表示支持,DEFAUULT表示默認存儲引擎

(3)Comment指對該引擎的說明

(4)Transactions表明是否支持事務處理,YES表示支持

(5)XA表示是否支持分佈式交易處理的XA規範,YES表示支持

(6)Savepoints表示是否支持保存點,以便事務回滾到保存點,YES表示支持

2,查詢數據庫的默認存儲引擎:SHOW VARIABLES LIKE 'STORAGE_ENGINE';

可以在mysql的配置文件my.ini中的default-storage-engine=INNODB一欄更改默認的存儲引擎。

3,下面介紹一下InnoDB,MyISAM,MEMORY這3種存儲引擎:

(1)InnoDB存儲引擎:在MySQL從3.23.34.a版本開始包含InnoDB存儲引擎。InnoDB存儲引擎中,

創建的表的結構存儲在.frm文件中。數據和索引存儲在innodb_data_home_dir

和innodb_data_file_path定義的表空間中。InnoDB給mysql的表提供了事物管理、

回滾、崩潰修復能力和多版本併發控制的事物安全。同時支持自動增長列AUTO_INCREMENT,

外鍵(FOREIGN KEY)。缺點是讀寫效率差,佔用的數據空間相對比較大。

(2)MyISAMysql存儲引擎:MyISAM存儲引擎基於ISAM存儲引擎發展起來的,曾是mysql的默認存儲引擎。

在該引擎中,表的結構存儲在.frm的文件中,數據存儲在以MYD爲擴展名的文件中,索引存儲在

MYI擴展名的文件中。基於MyISAM存儲引擎的表支持3中不同的存儲格式:靜態型,動態型和壓縮型。

靜態型爲默認存儲格式,字段長度固定;動態型包含變長字段,記錄的長度不固定;壓縮型需要使用

myisampack工具創建,佔用的磁盤空間較小。

MyISAM存儲引擎的優點在於佔用空間小,處理速度快。缺點是不支持失誤的完整性和併發性。

(3)MEMORY存儲引擎:MEMORY存儲引擎是mysql數據庫中一種特殊的存儲引擎。每個基於MEMORY的表實際對應一個

磁盤文件,類型爲frm類型。該文件只存儲表的結構。數據文件都是存儲在內存中。MEMORY存儲引

擎默認使用哈希(HASH)索引。速度比使用B型樹(BTREE)索引快。MEMORY表的大小是受到

限制的。表的大小主要取決於兩個參數,分別是max_rows和max_heap_table_size。max_rows可以

在創建表時指定;max_heap_table_size的大小默認爲16MB,可以按需要進行擴大。

MEMORY存儲引擎的優點是處理速度非常快,缺點是數據易丟失,生命週期短,通常是一次性的。

發佈了24 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章