MySQL優化
1 數據庫優化目的和方向
2 SQL語句優化
2.1 數據準備
2.2 如何發現有問題的SQL語句
2.2.1 慢查日誌
慢查日誌的包含的信息
日誌分析工具
mysql自帶的mysqldumpslow
分析結果
這個工具分析結果包含的信息少,因此常用下面這款。
pt-query-digest
2.2.2 如何通過慢查日誌發現有問題的SQL
2.3 如何分析SQL查詢
使用explain查詢SQL的執行計劃
2.4 SQL優化
2.4.1 Max()和Count()的優化
添加索引
結果
count(*)會統計null,count(列)不會
2.4.2 子查詢的優化
2.4.3 groupby的優化
2.4.4 limit的優化
- 避免了數據量大時掃描過多的記錄
3 索引優化
3.1 如何選擇合適的列建立索引
3.2 刪除冗餘索引
查找冗餘索引(在表information_schema中)
利用工具
3.3 維護索引
刪除不用索引
4 表結構優化
4.1 選擇合適的數據類型
4.2 範式化的優化
4.3 反範式化的優化
4.4 表的垂直拆分
拆分前
拆分後
4.5 表的水平拆分
5 系統優化
5.1 操作系統優化
5.2 MySQL本身優化
常用參數說明
5.3 第三方配置工具
6 服務器硬件優化
6.1 如何選擇CPU