MySQL中Datetime和timestamp字段明明设置了索引但是查起来还很慢?是因为查询语句没能使用索引
场景:查询一天的数据,例如2020年10月14日。
表结构:my_table表有my_time字段类型为timestamp
应该使用的查询语句:
select * from my_table where '2020-10-14'<=my_time and my_time <'2020-10-14'+ INTERVAL 1 DAY
注意事项:
<=my_time and my_time <
这里的and不能省略写成<=my_time<
这种方式。
my_time <'2020-10-14'+ INTERVAL 1 DAY
这里不用省略+ INTERVAL 1 DAY
而手动写成2020-10-15
。
其它:
使用explain语句可以检查sql语句的索引使用情况。