简体   繁体   中英

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)

the explain plan of this query gives me 337243 but data s between these dates is only 55209 and there is even index is created on column DATE_OF_ISSUE . So, why it is scanning the whole table? thanks in advance

Some possibilities:

  • The optimizer thinks (correctly or incorrectly) that a non-trivial percentage of the table would be needed. How many rows in the table?
  • You are using MyISAM; switch to InnoDB.
  • For some reason, the 'statistics' are stale. Do ANALYZE TABLE .

To discuss further, please provide SHOW CREATE TABLE .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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