MySQL 8 InnoDB 存儲引擎

InnoDB 表的最佳實踐sql

每張表指定主鍵,若是沒有明顯主鍵列,使用auto-increment值。數據庫

使用 join 鏈接多張表時,在鏈接列上使用相同數據類型,並定義外鍵約束。在MySQL中在列上定義外鍵約束時,會自動在列上建立索引,而且提供級聯刪除、更新功能。服務器

關閉自動提交。性能

分組DML操做。測試

不要使用LOCK TABLES語句,若是要給行添加排它寫鎖,能夠經過SELECT ... FOR UPDATE語句實現。spa

enable file_per_table_names,默認開啓。索引

評估數據和訪問模式是否受益於InnoDB表或者Page Compression。enable Page Compression不會犧牲read/write能力。生命週期

SQL Mode配置 --sql_mode=NO_ENGINE_SUBSTITUTION 選項。這個在建立表時,若是指定的--engine 選項有問題,不會自動建立默認存儲引擎的表。進程

 

InnoDB測試和基準測試rem

若是測試現有表(不使用InnoDB),將其存儲引擎改成InnoDB後的影響。有兩種方法:

第一種方法:ALTER TABLE ... ENGINE=InnoDB

第二種方法:CREATE TABLE ... AS SELECT * FROM ... (這樣對源表沒有影響)

 

在真實負載下對整個應用程序評估性能,安裝最新版的MySQL Server並作基準測試。

測試整個應用程序的生命週期,涉及安裝、高負載運行、服務器重啓。經過KILL 進程模擬數據庫在繁忙狀態下斷電故障,驗證數據庫是否能夠在重啓後成功恢復。

若是是複製環境,測試複製中的各類配置。

相關文章
相關標籤/搜索