我使用这个查询:
select field from table1 where time LIKE '%2016-03%' order by time asc limit 1我的问题是,该表有数千行,因此搜索1行需要花费太长时间。正常吗?
发布于 2016-03-24 05:21:19
LIKE查询总是比查找特定值慢。
在字段上添加INDEX并将查询更改为LIKE '2016-03%' (在时间戳中年份之前不会有任何,所以删除第一个%)会有很大帮助。它至少可以走几条捷径。
发布于 2016-03-24 05:20:57
尝试向time列添加一个INDEX,并如其他人所指出的那样,从查询中删除前导%。
发布于 2016-03-24 05:22:56
如果您使用LIKE并以%开始,则MySQL必须进行全表扫描以查找正确的日期,但是如果您直接从年份开始,则可以使用索引:...KIKE '2016-03-%‘
https://stackoverflow.com/questions/36188864
复制相似问题