为什么这个简单的查询不使用任何一个索引?

时间:2015-10-08 17:30:00

标签: mysql sql explain

查询:

SELECT *, history_count as `count` 
FROM pdf_history  
WHERE 1  AND history_date>=1426180929  AND history_count!=0

EXPLAIN

id  select_type     table   type    possible_keys   key     key_len     ref     rows    Extra 

1   SIMPLE  pdf_history ALL history_date,history_count  NULL    NULL    NULL    697 Using where

1 个答案:

答案 0 :(得分:1)

优化器选择不使用索引的原因之一是过滤器不会减少搜索空间。

例如

history_date>=1426180929

history_count!=0

已经带来了所有记录,然后使用索引并没有真正帮助。

我的建议是这两个查询并检查ANALYZE以查看有多少 600条记录与过滤器匹配

SELECT count(*) FROM pdf_history WHERE history_date>=1426180929;
SELECT count(*) FROM pdf_history WHERE history_count!=0;