從我的經驗談談MyISAM、InnoDB、BDB三種資料表的優缺點

y0umer發表於2011-04-19

MyISAM
優點:速度快,磁碟空間佔用少;某個庫或表的磁碟佔用情況既可以通過作業系統查相應的檔案(夾)的大小得知,也可以通過SQL語句SHOW TABLE STATUS查得
缺點:沒有資料完整性機制,即不支援事務和外來鍵

InnoDB
優點:支援事務和外來鍵,資料完整性機制比較完備;可以用SHOW TABLE STATUS查得某個庫或表的磁碟佔用
缺點:速度超慢,磁碟空間佔用多;所有庫都存於一個(通常情況)或數個檔案中,無法通過作業系統瞭解某個庫或表的佔用空間

BDB
優點:支援事務,不支援外來鍵,由於在事務支援的基礎上,外來鍵可以在資料庫的客戶端(可能是最終客戶的伺服器端,例如php)間接實現,所以資料完整性仍然是有保障的;
缺點:速度慢,磁碟佔用多;不能通過SHOW TABLE STATUS查詢某個庫或表的空間佔用;用作業系統可瞭解庫相應的資料夾,或表相應的檔案的大小,但由於BDB表總是還要產生log檔案,而實際的磁碟佔用應該把log檔案也包含在內,所以用作業系統查得某庫或表的大小總是小於實際佔用空間。


相關文章