繁体   English   中英

mysql全表扫描

[英]full table scan in mysql

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

一些可能性:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM