查詢優化
分析查詢速度慢緩存
- 記錄慢查詢日誌,使用pt-query-digest工具分析
- 使用show profile ,開啓:set profiling=1;查看:show profiles;單句query詳情:show profile for query x;
- 使用show status 會返回語句計數器,show global status查看全局計數
- show processlist 觀察線程情況
- explain 分析單條SQL語句,
查詢常見問題工具
- 訪問數據過多
- 檢索的行或列太多
- MYSQL在分析沒必要要的數據行
常規優化查詢優化
- 使用limit控制量
- 指定列名
- 緩存數據
- 經常使用搜索條件設置索引
- 改變數據表結構,修改表的範式
- 掃描數據比響應快,應當儘可能減小查詢數
特定類型優化查詢ui
- 優化count查詢,count(*)比count(列名)更快,增長彙總表
- 優化關聯查詢,在on或者using字句列上加索引,group by和order by中只有一個表的列,這樣纔有可能使用索引
- 優化group by和distinct,添加索引,不須要排序的狀況添加order by NULL
- 優化limit分頁,能夠記錄id,用id作查詢條件
- 優化uinon,union all比union快
歡迎關注本站公眾號,獲取更多信息