我有以下查询:
SELECT MIN(myColumn) as myColumn
FROM myTable
WHERE date(time_stamp) = curdate() AND id = 1;
这当前有效但当数据库中存在大量数据时非常慢。 我尝试使用它:
SELECT MIN(myColumn) as myColumn
FROM myTable
WHERE time_stamp >= (now() - interval 1 day) AND id = 1;
此查询非常快,但问题是我在过去24小时内获取的数据,而不是截至上午12点的当天。我假设date()转换正在减慢很多。有没有更好的方法来进行第一次查询以加快速度?
答案 0 :(得分:1)
简单的方法可以是
SELECT MIN(myColumn) as myColumn
FROM myTable
WHERE time_stamp between date(now()) and date(now() + interval 1 day) AND id = 1;
或类似。
答案 1 :(得分:1)
我没有安装MySql来测试选项,但尝试使用time_stamp> = curDate()或修改curDate(),使其格式化为time_stamp。