1.SQL查看
Query_time: 145.345483
select count(*) from `pics`.`bicarmodel_new` where date_format(GMT_MODIFIED,'%Y%m%d')= CURDATE()-1;
2.优化方法
where date_format(GMT_MODIFIED,'%Y%m%d')= CURDATE()-1;
--修改为:
WHERE GMT_MODIFIED BETWEEN CURDATE()-INTERVAL 1 DAY and DATE_SUB(CURDATE(), INTERVAL 1 SECOND);
同时在该字段上创建索引,提能够有效提升运行效率。
3.优化后运行
root@localhost [(none)]>select count(*) from `pics`.`bicarmodel_new` WHERE GMT_MODIFIED BETWEEN CURDATE()-INTERVAL 1 DAY and DATE_SUB(CURDATE(), INTERVAL 1 SECOND);
+----------+
| count(*) |
+----------+
| 0 |
+----------+
1 row in set (0.00 sec)
4.总结
遇到日期时间戳字段,尽量将函数放在时间戳或日期后面的常量上,而不是直接在时间字段上使用函数。