14.1.2 best practices for innodb tables
innodb表最佳實踐:
這個章節描述使用innodb表最佳實踐:
1.指定乙個主鍵用於每個表使用最多查詢的列或者多列,或者乙個自動遞增值 如果沒有明顯的主鍵列
2.使用關聯無論資料是從多個表拉出基於表示id只從那些表。
對於快速鏈結效能, 定義外來鍵在關鍵列,定義那些列有相同的資料型別在每個表。
增加外來鍵組確保引用的列被索引,可以改善效能。
3.關掉自動提交, 每秒數百次提交堵塞效能
4.相關dml 分組操作到乙個事務,通過開始事務 start transaction and commit statements.
這樣你不需要提交太頻繁,因此你不需要執行大量的insert, update, or delete statements的批處理語句,執行多個小時而不提交
5.不要使用lock tables語句, innodb 可以處理大量的session 都讀取和寫到相同的表at once,
不需要犧牲可靠性或者高可用性。 得到排它寫訪問對於一組記錄,使用select ... for update語句來只鎖定你想要的記錄
6. 啟動 innodb_file_per_table 選項來防止資料和索引對於單個表到單獨的檔案,
代替在乙個巨大的系統表空間。
這個設定是需要使用一些其他的功能,比如表壓縮和快速truncate
7. innodb_file_per_table 選項在mysql 5.6.6預設啟動
InnoDB,5項最佳實踐
mysql兩個最常用的儲存引擎,myisam和innodb 一 關於count 知識點 myisam會直接儲存總行數,innodb則不會,需要按行掃瞄。潛台詞是,對於select count from t 如果資料量大,myisam會瞬間返回,而innodb則會一行行掃瞄。例如 t user uid...
InnoDB,5項最佳實踐,知其所以然?
說說mysql兩個最常用的儲存引擎,myisam和innodb。照自己的理解,把一些知識點總結出來,不只說知識點,多講 為什麼 一 關於count 知識點 myisam會直接儲存總行數,innodb則不會,需要按行掃瞄。潛台詞是,對於select count from t 如果資料量大,myisam...
InnoDB,5項最佳實踐,知其所以然?
快取講了乙個月 快取架構,一篇足夠 今天,開始寫資料庫。第一篇,說說mysql兩個最常用的儲存引擎,myisam和innodb。照自己的理解,把一些知識點總結出來,不只說知識點,多講 為什麼 一 關於count 知識點 myisam會直接儲存總行數,innodb則不會,需要按行掃瞄。潛台詞是,對於s...