MySQL的存儲引擎

[url]http://blog.csdn.net/mlks_2008/article/details/2594970[/url]
MYSQL存儲引擎分 MyISAM 和 InnoDB兩種 ;使用MyISAM存儲引擎的數據庫每個表有三個文件,用InnoDB引擎的只有 一個文件,另外的數據文件在 data/ibdata1 文件中.類似於oracle的表空間文件。

MySQL服務器採用了模塊化風格,各部分之間保持相對獨立,尤其體現在存儲架構上。存儲引擎負責管理數據存儲,以及MySQL的索引管理。通過定義的API,MySQL服務器能夠與存儲引擎進行通信。目前使用最多的是MyISAM和InnoDB。InnoDB被Oracle收購後,MySQL自行開發的新存儲引擎Falcon將在MySQL6.0版本引進。

MyISAM引擎是一種非事務性的引擎,提供高速存儲和檢索,以及全文搜索能力,適合數據倉庫等查詢頻繁的應用。MyISAM中,一個table實際保存爲三個文件,.frm存儲表定義,.MYD存儲數據,.MYI存儲索引。

InnoDB 則是一種支持事務的引擎。所以的數據存儲在一個或者多個數據文件中,支持類似於Oracle的鎖機制。一般在OLTP應用中使用較廣泛。如果沒有指定 InnoDB配置選項,MySQL將在MySQL數據目錄下創建一個名爲ibdata1的自動擴展數據文件,以及兩個名爲ib_logfile0和 ib_logfile1的日誌文件。

創建table時可以通過engine關鍵字指定使用的存儲引擎,如果省略則使用系統默認的存儲引擎:
CREATE TABLE t (i INT) ENGINE = MYISAM;

查看系統中支持的存儲引擎類型:
show engines;

標準安裝程序中只提供部分引擎的支持,如果需要使用其他的存儲引擎,需要使用源代碼加不同的參數重新編譯。其中DEFAULT表明系統的默認存儲引擎,可以通過修改配置參數來變更:
default-storage-engine=MyISAM

查看某個存儲引擎的具體信息
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章