我需要根据月份和年份选择记录,月份和年份将来自php
所以我的问题是
SELECT id, created FROM table_name WHERE YEAR(created) = 2020 AND MONTH(created) = 05 LIMIT 500;
这里创建的是datetime字段,这个查询的问题是,如果表中的记录较少,它可以正常工作,但是当表记录增加时,查询变得非常慢
我在2020-05的表中有10000多条记录,总共有100万条记录,因此执行此查询大约需要11秒,我怀疑这是因为查询正在执行完整的表扫描
请帮助我找到一个解决方案,使此查询执行得更快?
1条答案
按热度按时间htzpubme1#
在where子句中使用函数mysql不使用该列的索引来执行查询时,您在where子句中使用的是year()和month()函数。
您可以将查询更改为下面的,然后再试一次
**别忘了给字段添加索引。