高性能MySQL读书笔记---查询优化
生活随笔
收集整理的這篇文章主要介紹了
高性能MySQL读书笔记---查询优化
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
查詢優化
查詢緩慢的原因
-
是否向數據庫請求了不必要的數據
SELECT * FORM table1 WHERE a=1;SELECT * FORM table1 LEFT JOIN table2 LEFT JOIN table2 where a = b;
1.查詢時是否返回了全部或者大部分數據然后再進行處理的。
2.進行單查或者多表聯查時是否返回了全部列數據。例如:查詢時盡量只查自己需要的字段,盡量不要用*查詢
查詢400萬數據,十個字段時直接使用*查詢耗費時間為11s,只查詢id時耗費3s左右 - 查詢單條數據確定行時盡量使用LINIT來限制查詢行數,終止查詢,否則就算找到對應列后MsSQL還是繼續掃描
不加索引的情況下,查詢單條數據不加limit 2.5s 加上limit限制0.1s
拆分復雜的查詢方式
- 將一個復雜的查詢拆分成多個簡單的查詢。
- 將一次處理大量數據的操作,分解為多個小操作。循環的方式每次處理一部分數據。一次刪除不要超過10 000行(delete)
- 減少JOIN的使用,把多表聯查的查詢分解成多個單表查詢,在應用程序中實現連接操作
拆分查詢的優勢:
減少對COUNT的使用,因為InnoDB使用COUNT是做的全表掃描,對大表使用COUNT查詢會非常緩慢
- 對于需要統計的數據冗余的統計表來做統計操作,一個小時或者一天統計一次數據
- 使用Redis之類的緩存技術來做統計功能,例如排行榜和點贊人數統計可以用redis的有序集合來做
總結
以上是生活随笔為你收集整理的高性能MySQL读书笔记---查询优化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu 16.04修改显示字体大小
- 下一篇: mediawiki常用设置