我有sql。
select count(id) as total, DATE_FORMAT(create_time,"%Y-%m-%d") as create_date
from table_name
group by DATE_FORMAT(create_time,"%Y-%m-%d");
然后定义列的创建时间。
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
据我所知,函数date\u格式没有索引,所以我的执行速度非常慢。有什么办法可以优化它吗?
mysql数据库version:5.6.34
3条答案
按热度按时间p4rjhz4m1#
这不会加快速度,但会更干净:
2nbm6dog2#
您可以创建生成的列并在该列上创建索引:
因为生成的列是虚拟的,所以它不会使用任何空间(但是,索引当然会使用额外的空间。)然后可以在查询中使用此生成的列:
qaxu7uf23#
我会尝试向左(创建时间,10),这应该利用索引。