文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


第 10 章 優化

目錄

10.1 優化概觀
10.2 優化 SQL 語句
10.2.1 優化 SELECT 語句
10.2.2 優化子查詢、衍生資料表、檢視表參考和通用資料表表達式
10.2.3 優化 INFORMATION_SCHEMA 查詢
10.2.4 優化效能架構查詢
10.2.5 優化資料變更語句
10.2.6 優化資料庫權限
10.2.7 其他優化提示
10.3 優化與索引
10.3.1 MySQL 如何使用索引
10.3.2 主鍵優化
10.3.3 SPATIAL 索引優化
10.3.4 外鍵優化
10.3.5 資料行索引
10.3.6 多資料行索引
10.3.7 驗證索引使用
10.3.8 InnoDB 和 MyISAM 索引統計資訊收集
10.3.9 B 樹和雜湊索引的比較
10.3.10 索引擴充的使用
10.3.11 最佳化工具對產生資料行索引的使用
10.3.12 不可見索引
10.3.13 遞減索引
10.3.14 從 TIMESTAMP 資料行的索引查詢
10.4 優化資料庫結構
10.4.1 優化資料大小
10.4.2 優化 MySQL 資料類型
10.4.3 多資料表優化
10.4.4 MySQL 中內部暫存資料表的使用
10.4.5 資料庫和資料表數量的限制
10.4.6 資料表大小的限制
10.4.7 資料表資料行計數和列大小的限制
10.5 InnoDB 資料表的優化
10.5.1 InnoDB 資料表儲存配置的優化
10.5.2 InnoDB 交易管理的優化
10.5.3 InnoDB 唯讀交易的優化
10.5.4 InnoDB 重做記錄的優化
10.5.5 InnoDB 資料表的批量資料載入
10.5.6 InnoDB 查詢的優化
10.5.7 InnoDB DDL 作業的優化
10.5.8 InnoDB 磁碟 I/O 的優化
10.5.9 InnoDB 組態變數的優化
10.5.10 為具有多資料表的系統優化 InnoDB
10.6 MyISAM 資料表的優化
10.6.1 MyISAM 查詢的優化
10.6.2 MyISAM 資料表的批量資料載入
10.6.3 優化 REPAIR TABLE 語句
10.7 MEMORY 資料表的優化
10.8 了解查詢執行計畫
10.8.1 使用 EXPLAIN 優化查詢
10.8.2 EXPLAIN 輸出格式
10.8.3 擴充的 EXPLAIN 輸出格式
10.8.4 為已命名連線取得執行計畫資訊
10.8.5 估計查詢效能
10.9 控制查詢最佳化工具
10.9.1 控制查詢計畫評估
10.9.2 可切換的優化
10.9.3 最佳化工具提示
10.9.4 索引提示
10.9.5 最佳化工具成本模型
10.9.6 最佳化工具統計資料
10.10 緩衝和快取
10.10.1 InnoDB 緩衝池優化
10.10.2 MyISAM 金鑰快取
10.10.3 快取預先處理的語句和儲存程式
10.11 優化鎖定作業
10.11.1 內部鎖定方法
10.11.2 資料表鎖定問題
10.11.3 並行插入
10.11.4 中繼資料鎖定
10.11.5 外部鎖定
10.12 優化 MySQL 伺服器
10.12.1 優化磁碟 I/O
10.12.2 使用符號連結
10.12.3 優化記憶體使用
10.13 效能測量 (基準測試)
10.13.1 測量運算式和函數的速度
10.13.2 使用您自己的基準測試
10.13.3 使用 performance_schema 測量效能
10.14 檢查伺服器執行緒 (處理程序) 資訊
10.14.1 存取處理程序清單
10.14.2 執行緒命令值
10.14.3 一般執行緒狀態
10.14.4 複製來源執行緒狀態
10.14.5 複製 I/O (接收器) 執行緒狀態
10.14.6 複製 SQL 執行緒狀態
10.14.7 複製連線執行緒狀態
10.14.8 NDB Cluster 執行緒狀態
10.14.9 事件排程器執行緒狀態

本章說明如何優化 MySQL 的效能並提供範例。優化涉及在多個層次上進行配置、調整和測量效能。根據您的職責 (開發人員、DBA 或兩者的組合),您可能會在個別 SQL 陳述式、整個應用程式、單一資料庫伺服器或多個網路資料庫伺服器的層級上進行優化。有時您可以主動並提前規劃效能,而其他時候您可能會在問題發生後對組態或程式碼問題進行疑難排解。優化 CPU 和記憶體使用率也可以提高可擴展性,讓資料庫能夠處理更多負載而不會變慢。