Best Practices for InnoDB Tables
- 用最常查詢的欄位當 primary key,沒有的話用 auto increment numbers
- 設定 Foreign key 會讓該欄位被 indexed,因此加快 join 效能。並且能傳播 updates 跟 deletes 到相關 table
- 關掉 autocommit,不然一次寫入就是一次交易,一秒可能幾百筆交易,效能會打折(受限於硬碟的寫入速度)
- 適當的使用
START TRANSACTION
和COMMIT
把 SQL 包起來執行,不要太小包,也不要大包到要跑好幾個小時 - 不要用
LOCK TABLES
敘述 - 可以考慮 page compression 功能對你的 access pattern 有沒有(效能上的?)幫助
- 啟動時加上
--sql_mode=NO_ENGINE_SUBSTITUTION
參數