如何优化日期字段的SQL查询

如何优化日期字段的SQL查询,sql,datetime,Sql,Datetime,大家好,我有大量的数据,我想执行SQL查询从服务器获取数据。检索数据需要很多时间。请建议我如何优化此查询。这是我的密码: SELECT count(*) as count, DATE_FORMAT(date,'%d-%b-%y') as dateName from myTable where date BETWEEN UTC_TIMESTAMP() - INTERVAL 30 DAY AND UTC_TIMESTAMP() and id=123 GROUP BY DAY(d

大家好,我有大量的数据,我想执行SQL查询从服务器获取数据。检索数据需要很多时间。请建议我如何优化此查询。这是我的密码:

SELECT count(*) as count,
       DATE_FORMAT(date,'%d-%b-%y') as dateName 
from myTable 
where date BETWEEN UTC_TIMESTAMP() - INTERVAL 30 DAY AND UTC_TIMESTAMP() 
and id=123 
GROUP BY DAY(date) 
order by date ASC  

尝试将日期定义为FROM中单独子查询的字段,以避免对每条记录进行计算

此查询提供数据需要50-60秒。我想优化最短时间。您是否可以尝试传递实际日期,而不是调用每条记录的UTC_时间戳?首先尝试使用硬编码日期,看看性能是否有所提高。我相信你那里有一个很大的数据集。谢谢你的回复,但当我传递实际日期时,它也需要相同的时间。谢谢你的回复,但从服务器检索数据也需要58秒。尝试为“日期”列添加索引抱歉,我不知道如何为日期列编制索引。ALTER TABLE TABLE_NAME add index column_NAME;我认为按日期分组花费的时间太多了
SELECT count(*) as count,
       DATE_FORMAT(date,'%d-%b-%y') as dateName 
from myTable, (select UTC_TIMESTAMP() - INTERVAL 30 DAY as start_date, UTC_TIMESTAMP() as end_date) dd  
where date BETWEEN dd.start_date AND dd.end_date
and id=123 
GROUP BY DAY(date) 
order by date ASC;