mysql查詢語句出現sending data耗時解決


在執行一個簡單的sql查詢,表中數據量為14萬
sql語句為:SELECT id,titile,published_at from spider_36kr_record where is_analyze=0 ORDER BY create_time DESC LIMIT 10;
開始的時候很快,但后面sql語句查詢越來越慢 。開始查找問題原因;
1. 執行explain

發現沒毛病,正常走了索引

 

2. 執行SHOW PROFILES 查出Query_ID后在執行 show profile for query Query_ID ,或者是show processlist,查看查詢所耗時資源

 

得知查詢到語句耗時主要集中在 sending data上

 

解決步驟:
1. 查詢資料需要開啟查詢緩存,執行命令查看開啟情況 show variables like '%query_cache%'

 

改配置文件設置 query_cache_type=YES,后發現查詢速度依然很慢,所以這個方案失效

 

2. 查看buffer 執行 show variables like 'innodb_buffer_pool%';

可以看出innodb_buffer_pool_size只有8M大小,理論上應該為主機內存的75%-80%,所以我這里先設置成2G

 

重啟mysql,執行sql后發現查詢毫秒級,問題解決

 

關於innodb_buffer_pool_size 可以參考博友文章  https://www.cnblogs.com/wanbin/p/9530833.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM