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