雖然MySQL里的存儲(chǔ)引擎不只是MyISAM與InnoDB這兩個(gè),但常用的就是它倆了。可能有站長并未注意過MySQL的存儲(chǔ)引擎,其實(shí)存儲(chǔ)引擎也是數(shù)據(jù)庫設(shè)計(jì)里的一大重要點(diǎn),那么博客系統(tǒng)應(yīng)該使用哪種存儲(chǔ)引擎呢?下面我們分別來看兩種存儲(chǔ)引擎的區(qū)別。
MySQL存儲(chǔ)引擎MyISAM與InnoDB的區(qū)別
一、InnoDB支持事務(wù),MyISAM不支持,這一點(diǎn)是非常之重要。事務(wù)是一種高級的處理方式,如在一些列增刪改中只要哪個(gè)出錯(cuò)還可以回滾還原,而MyISAM就不可以了。
二、MyISAM適合查詢以及插入為主的應(yīng)用,InnoDB適合頻繁修改以及設(shè)計(jì)到安全性就高的應(yīng)用
三、InnoDB支持外鍵,MyISAM不支持
四、MyISAM是默認(rèn)引擎,InnoDB需要指定
五、InnoDB不支持FULLTEXT類型的索引
六、InnoDB中不保存表的行數(shù),如select count(*) from table時(shí),InnoDB需要掃描一遍整個(gè)表來計(jì)算有多少行,但是MyISAM只要簡單的讀出保存好的行數(shù)即可。注意的是,當(dāng)count(*)語句包含where條件時(shí)MyISAM也需要掃描整個(gè)表
七、對于自增長的字段,InnoDB中必須包含只有該字段的索引,但是在MyISAM表中可以和其他字段一起建立聯(lián)合索引
八、清空整個(gè)表時(shí),InnoDB是一行一行的刪除,效率非常慢。MyISAM則會(huì)重建表
九、InnoDB支持行鎖(某些情況下還是鎖整表,如 update table set a=1 where user like '%lee%'
通過以上九點(diǎn)區(qū)別,結(jié)合個(gè)人博客的特點(diǎn),推薦個(gè)人博客系統(tǒng)使用MyISAM,因?yàn)樵诓┛屠镏饕僮魇亲x取和寫入,很少有鏈?zhǔn)讲僮?。所以選擇MyISAM引擎使你博客打開也頁面的效率要高于InnoDB引擎的博客,當(dāng)然只是個(gè)人的建議,大多數(shù)博客還是根據(jù)實(shí)際情況下謹(jǐn)慎選擇。我的小站目前就使用MyISAM引擎!
更多信息請查看IT技術(shù)專欄