在mysql中进行全表扫描

时间:2018-02-21 11:33:58

标签: mysql optimization full-table-scan

select *from REPT_AIR_PRY_HY1 RAP where (RAP.DATE_OF_ISSUE) BETWEEN "2017-10-01" AND DATE_ADD("2017-10-31", INTERVAL 1 DAY)

此查询的解释计划为我提供了 337243 但这些日期之间的数据仅为 55209 ,并且在DATE_OF_ISSUE列上创建了偶数索引。那么,为什么要扫描整个桌子呢? 提前谢谢

1 个答案:

答案 0 :(得分:0)

一些可能性:

  • 优化器认为(正确或错误地)需要表的非平凡百分比。表中有多少行?
  • 您正在使用MyISAM;切换到InnoDB。
  • 由于某种原因,'统计'是陈旧的。做ANALYZE TABLE

要进一步讨论,请提供SHOW CREATE TABLE