MySQL的表類(lèi)型和存儲(chǔ)引擎
1. MySQL的表類(lèi)型由存儲(chǔ)引擎(Storage Engines)決定,類(lèi)型包括MyISAM、innoDB、BDB等。創(chuàng)建表時(shí)指定表類(lèi)型的方法:
CREATE TABLE et (i INT) ENGINE = MYISAM;
也可以創(chuàng)建后更改:
ALTER TABLE et ENGINE = INNODB;
查看表類(lèi)型(存儲(chǔ)引擎):
SHOW TABLE STATUS FROM test;
結(jié)果為數(shù)據(jù)庫(kù)test中所有表的信息,其中第二項(xiàng)type即是表的類(lèi)型。
或
SHOW CREATE TABLE et;
結(jié)果為表et創(chuàng)建時(shí)的信息,其中有TYPE或ENGINE一項(xiàng),指定了表的類(lèi)型(存儲(chǔ)引擎)。
注意:show tables不能得到表類(lèi)型的信息。
刪除表:drop table if exists et;
老版本的MySQL使用TYPE而不是ENGINE(例如,TYPE = MYISAM)。MySQL 5.1為向下兼容而支持這個(gè)語(yǔ)法,但TYPE現(xiàn)在被輕視,而ENGINE是首先的用法。 一般地,ENGINE選項(xiàng)是不必要的;除非默認(rèn)已經(jīng)被改變了,MyISAM是默認(rèn)存儲(chǔ)引擎。
2. 常用的存儲(chǔ)引擎:
· MyISAM:默認(rèn)的MySQL插件式存儲(chǔ)引擎,它是在Web、數(shù)據(jù)倉(cāng)儲(chǔ)和其他應(yīng)用環(huán)境下最常使用的存儲(chǔ)引擎之一。注意,通過(guò)更改STORAGE_ENGINE配置變量,能夠方便地更改MySQL服務(wù)器的默認(rèn)存儲(chǔ)引擎。
· InnoDB:用于事務(wù)處理應(yīng)用程序,具有眾多特性,包括ACID事務(wù)支持。
· BDB:可替代InnoDB的事務(wù)引擎,支持COMMIT、ROLLBACK和其他事務(wù)特性。
· Memory:將所有數(shù)據(jù)保存在RAM中,在需要快速查找引用和其他類(lèi)似數(shù)據(jù)的環(huán)境下,可提供極快的訪問(wèn)。
· Merge:允許MySQL DBA或開(kāi)發(fā)人員將一系列等同的MyISAM表以邏輯方式組合在一起,并作為1個(gè)對(duì)象引用它們。對(duì)于諸如數(shù)據(jù)倉(cāng)儲(chǔ)等VLDB環(huán)境十分適合。
· Archive:為大量很少引用的歷史、歸檔、或安全審計(jì)信息的存儲(chǔ)和檢索提供了完美的解決方案。
· Federated:能夠?qū)⒍鄠€(gè)分離的MySQL服務(wù)器鏈接起來(lái),從多個(gè)物理服務(wù)器創(chuàng)建一個(gè)邏輯數(shù)據(jù)庫(kù)。十分適合于分布式環(huán)境或數(shù)據(jù)集市環(huán)境。
· Cluster/NDB:MySQL的簇式數(shù)據(jù)庫(kù)引擎,尤其適合于具有高性能查找要求的應(yīng)用程序,這類(lèi)查找需求還要求具有最高的正常工作時(shí)間和可用性。
· Other:其他存儲(chǔ)引擎包括CSV(引用由逗號(hào)隔開(kāi)的用作數(shù)據(jù)庫(kù)表的文件),Blackhole(用于臨時(shí)禁止對(duì)數(shù)據(jù)庫(kù)的應(yīng)用程序輸入),以及Example引擎(可為快速創(chuàng)建定制的插件式存儲(chǔ)引擎提供幫助)。
存儲(chǔ)引擎比較圖見(jiàn)《MySQL5.1 參考手冊(cè)》的圖14.2(http://www.programfan.com/doc/mysql/pluggable-storage.html#pluggable-storage-choosing)。從圖中可以看到各個(gè)存儲(chǔ)引擎的鎖粒度(locking granularity)是不同的,ISAM、MyISAM、Memory(HEAP)僅支持表級(jí)鎖,而innoDB、Archive、NDB可支持行級(jí)鎖,BDB支持頁(yè)面鎖。
3. 存儲(chǔ)引擎和事務(wù)
下述存儲(chǔ)引擎支持事務(wù):
· InnoDB:通過(guò)MVCC支持事務(wù),允許COMMIT、ROLLBACK和保存點(diǎn)。
· NDB:通過(guò)MVCC支持事務(wù),允許COMMIT和ROLLBACK。
· BDB:支持事務(wù),允許COMMIT和ROLLBACK。
參考文獻(xiàn):MySQL5.1 參考手冊(cè) http://www.programfan.com/doc/mysql/
聯(lián)系客服