從我的經(jīng)驗談談MyISAM,、InnoDB、BDB三種數(shù)據(jù)表的優(yōu)缺點 http://hknng./hknng/archive.php/article/114.html MyISAM 優(yōu)點:速度快,,磁盤空間占用少,;某個庫或表的磁盤占用情況既可以通過操作系統(tǒng)查相應的文件(夾)的大小得知,,也可以通過SQL語句SHOW TABLE STATUS查得 缺點:沒有數(shù)據(jù)完整性機制,即不支持事務和外鍵 InnoDB 優(yōu)點:支持事務和外鍵,,數(shù)據(jù)完整性機制比較完備,;可以用SHOW TABLE STATUS查得某個庫或表的磁盤占用 缺點:速度超慢,磁盤空間占用多,;所有庫都存于一個(通常情況)或數(shù)個文件中,,無法通過操作系統(tǒng)了解某個庫或表的占用空間 BDB 優(yōu)點:支持事務,不支持外鍵,,由于在事務支持的基礎上,,外鍵可以在數(shù)據(jù)庫的客戶端(可能是最終客戶的服務器端,例如php)間接實現(xiàn),,所以數(shù)據(jù)完整性仍然是有保障的,; 缺點:速度慢,磁盤占用多,;不能通過SHOW TABLE STATUS查詢某個庫或表的空間占用,;用操作系統(tǒng)可了解庫相應的文件夾,或表相應的文件的大小,,但由于BDB表總是還要產生log文件,,而實際的磁盤占用應該把log文件也包含在內,所以用操作系統(tǒng)查得某庫或表的大小總是小于實際占用空間,。 最早開始做SMCCom,,看上了InnoDB的完美的數(shù)據(jù)完整性。微量數(shù)據(jù)測試時,,是看不出它的蝸牛速度的,,直到某日導入豬窩的數(shù)據(jù)庫(帖子3萬余條記錄)測試,就原形畢露了,。 但是繼續(xù)傾向于向數(shù)據(jù)完整性尋求解決,,于是又嘗試BDB。經(jīng)過與MyISAM的速度對比,,發(fā)現(xiàn)相差不大,,于是就投入測試。 直到今天發(fā)現(xiàn)BDB的磁盤占用比MyISAM要大約2倍,,考慮到網(wǎng)站轉成UTF-8編碼后數(shù)據(jù)量又要增加1/2左右,,而數(shù)據(jù)查詢和更新請求非常稀疏,于是決定轉用MyISAM了,。 |
|