如何理解这个EXPLAIN计划..?这让我感到困惑

时间:2012-01-11 13:22:38

标签: mysql

我有一个包含130Mill行的表。当我解析查询时,它在rowns列中显示130Mill。

EXPLAIN SELECT * FROM TABLE1;

行:130 Mill

但是当它在TABLE1time_dim_id之间添加where条件时,它在1900和2000之间

EXPLAIN SELECT * FROM TABLE1 WHERE time_dim_id between 1900 and 2000 ;

行:60Mill

为什么我感到惊讶是因为,此time_dim_id值没有NULL值 min(time_dim_id)是1900 AND max(time_dim_id)是2000。

为什么这不会在第二个EXPLAIN计划的行部分下再次显示130Mill行??

1 个答案:

答案 0 :(得分:1)

尝试

ANALYZE TABLE TABLE1

然后再次解析 - 这假设TABLE1.time_dim_id

上有一个索引