查詢優化

分析查詢速度慢緩存

  • 記錄慢查詢日誌,使用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快
相關文章
相關標籤/搜索