我有一个包含以下列的表,我为它们创建了索引:
dt 日期
和tm 时间
现在我试图判断某个时间戳之间是否有任何记录:
explain SELECT count(*) from XX
where dt != CURRENT_DATE
and tm BETWEEN '14:00:00' AND '14:30:00'
解释显示 key
在这里为 NULL,这是为什么?
如果我用数字零替换第一个时间值,解释短语显示索引正在使用中。
P.S 我只是尝试了更多。如果我用 exists
包装它,索引将再次使用。
最佳答案
尝试创建多列索引。
Create index dt_tm_ix on XX (dt, tm)
关于MySQL 没有在此查询中使用索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21873340/