雖然MySQL裡的存儲引擎不只是MyISAM與InnoDB這兩個,但常用的就是它倆了。可能有站長並未注意過MySQL的存儲引擎,其實存儲引擎也是數據庫設計裡的一大重要點,那麼博客系統應該使用哪種存儲引擎呢?下面我們分別來看兩種存儲引擎的區別。
MySQL存儲引擎MyISAM與InnoDB的區別
一、InnoDB支持事務,MyISAM不支持,這一點是非常之重要。事務是一種高級的處理方式,如在一些列增刪改中只要哪個出錯還可以回滾還原,而MyISAM就不可以了。
二、MyISAM適合查詢以及插入為主的應用,InnoDB適合頻繁修改以及設計到安全性就高的應用
三、InnoDB支持外鍵,MyISAM不支持
四、MyISAM是默認引擎,InnoDB需要指定
五、InnoDB不支持FULLTEXT類型的索引
六、InnoDB中不保存表的行數,如select count(*) from table時,InnoDB需要掃描一遍整個表來計算有多少行,但是MyISAM只要簡單的讀出保存好的行數即可。注意的是,當count(*)語句包含where條件時MyISAM也需要掃描整個表
七、對於自增長的字段,InnoDB中必須包含只有該字段的索引,但是在MyISAM表中可以和其他字段一起建立聯合索引
八、清空整個表時,InnoDB是一行一行的刪除,效率非常慢。MyISAM則會重建表
九、InnoDB支持行鎖(某些情況下還是鎖整表,如 update table set a=1 where user like '%lee%'
通過以上九點區別,結合個人博客的特點,推薦個人博客系統使用MyISAM,因為在博客裡主要操作是讀取和寫入,很少有鏈式操作。所以選擇MyISAM引擎使你博客打開也頁面的效率要高於InnoDB引擎的博客,當然只是個人的建議,大多數博客還是根據實際情況下謹慎選擇。我的小站目前就使用MyISAM引擎!