問題描述:
有一個mysql數據表,想去統計一下具體有多少行數據,於是就使用了 SELECT COUNT(url_id) FROM `spider_71_ggzy_zgzfcgw_content` 查詢了好久也沒有出來,有什么解決辦法呢?
查詢速度慢的 原因是什么?
innodb引擎在統計方面和myisam是不同的,Myisam內置了一個計數器,所以在使用 select count(*) from table 的時候,直接可以從計數器中取出數據。而innodb必須全表掃描一次方能得到總的數量。
解決方案一:使用索引查詢數據
我們添加了添加查詢 WHERE url_id > 0,查詢速度20s就出來結果了。url_id 是 NORMAL 索引類型
解決方案二:
好多時候查詢不如下載數據,這次我們用下載代替查詢。
153s出結果,速度相對於全掃描查詢快多了