然而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
沒有留言:
張貼留言