我有一个包含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行??
答案 0 :(得分:1)
尝试
ANALYZE TABLE TABLE1
然后再次解析 - 这假设TABLE1.time_dim_id
上有一个索引