InnoDB 不支援全文索引,而MyISAM有支援;但如果資料量大的話,建議使用InnoDB,因為它支援記錄恢復的功能。
然而InnoDB沒有資料數目記錄的功能,COUNT()運算會直接去算整張表資料數目,會造成龐大的負擔。而MyISAM因有記錄資料數目,所以執行COUNT()運算會非常快;但是COUNT()運算有加上where條件時,InnoDB與MyISAM都會去算整張表的資料數。
但是MyISAM不支援Foreign Key。對於這點,InnoDB則是有支援的。
MyISAM在Insert速度快;而InnoDB在Update速度較快。
在小型應用上,建議使用MyISAM效能會比較好。而大量資料且要有Foreign Key支援的話,請使用InnoDB。
最後我整理一張表格讓大家比較好理解一些。
資料庫引擎名稱
|
優點
|
缺點
|
MyISAM
|
l 對不具where語句的COUNT()運算快。
l 適合小型資料庫。
l Insert運算速度快。
l 支援全文索引。
|
l 不支援Foreign key。
l 記錄恢復功能差,重建速度慢。
|
InnoDB
|
l 支援Foreign Key。
l 具有良好的記錄恢復功能,重建記錄速度快。
l 適合大量資料處理。
l Update運算速度快。
|
l 對不具where語句的COUNT()運算慢。
l 不支援全文索引。
|
Reference