-1

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 上创建了索引。那么,为什么它要扫描整个表呢?提前致谢

4

1 回答 1

0

一些可能性:

  • 优化器认为(正确或错误地)需要一个重要百分比的表。表中有多少行?
  • 您正在使用 MyISAM;切换到 InnoDB。
  • 出于某种原因,“统计数据”已经过时了。做ANALYZE TABLE

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

于 2018-03-03T01:55:50.673 回答