我有一个MySQL数据表,里面有大约3000万条记录,其中一个字段是create_time,这是一个时间戳。
我想获取指定时间范围内的记录计数,并使用唯一关键字获取唯一用户计数。
SQL语句为:
select count(distinct owner_id) from code_orange_checkpointrecord
where create_time between '2023-01-01 00:00:00' and '2023-01-30 23:59:59';
但是查询非常慢,我试着在create_time上创建索引,结果慢了很多。
我觉得我做错了什么?
1条答案
按热度按时间q3qa4bjr1#
您向我们展示的精确查询将通过此多列索引加速。
顺便说一下,最好避免使用
BETWEEN
作为时间范围,而是使用BETWEEN
来获取一月的所有记录。23:59:59
可能不是该月的最后一个精确时间戳,因此最好使用<
和您不需要的第一个时间戳。