MySQL查询以获取时间戳等于当前日期的最小字段数据

MySQL查询以获取时间戳等于当前日期的最小字段数据,mysql,database,timestamp,Mysql,Database,Timestamp,我有以下疑问: 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; 这个查询

我有以下疑问:

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()转换会大大降低速度。有没有更好的方法来执行第一个查询以加快速度?

简单的方法是

SELECT MIN(myColumn) as myColumn 
FROM myTable 
WHERE time_stamp between date(now()) and date(now() + interval 1 day) AND id = 1; 

或者类似。我没有安装MySql来测试选项,但请尝试使用time\u stamp>=curDate()或将curDate()修改为类似于time\u stamp的格式