首先添加索引:
#添加索引
ALTER TABLE `user` ADD INDEX create_time_index ( `create_time` )
错误做法:
1.
# 耗时 2.05
SELECT
*
FROM
user
WHERE
DATE_FORMAT(create_time , '%Y-%m-%d') = '2021-01-21';
2.
# 耗时 1.58
SELECT
*
FROM
user
WHERE
to_days(create_time) = to_days(now());
3.
# 耗时 1.68
SELECT
*
FROM
user
WHERE
date(create_time) = curdate();
curdate() --------函数返回当前的日期
date() --------函数返回当前时间的日期部分
正确做法:
1.
# 添加索引前 3.24 3.76
# 添加索引后 查询时间为 0 秒
SELECT
*
FROM
user
WHERE
create_time BETWEEN CONCAT(curdate() , ' 00:00:00')
AND CONCAT(CURDATE() , ' 23:59:59')
2.
# 添加索引前1.63 1.61
# 添加索引后 查询时间为 0 秒
SELECT
*
FROM
user
WHERE
create_time >= '2021-01-21'
AND create_time < '2021-01-22'
3.
# 添加索引前 1.74 1.77
# 添加索引后 查询时间为 0 秒
SELECT
*
FROM
user
WHERE
create_time BETWEEN '2021-01-21 00:00:00'
AND '2021-01-21 23:59:59';