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. 執行explainhtml

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

 

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

 

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

 

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

 

改配置文件設置 query_cache_type=YES,後發現查詢速度依然很慢,因此這個方案失效htm

 

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

能夠看出innodb_buffer_pool_size只有8M大小,理論上應該爲主機內存的75%-80%,因此我這裏先設置成2G索引

 

重啓mysql,執行sql後發現查詢毫秒級,問題解決內存

 

關於innodb_buffer_pool_size 能夠參考博友文章  http://www.javashuo.com/article/p-ptvyxueu-k.htmlssl

相關文章
相關標籤/搜索