[英]Faster way of selecting by date MYSQL
现在我正在使用:
MONTH(timestamp) = '7'AND YEAR(timestamp) = '2013'
要按日期进行选择,但是有人告诉我这是一种非常低效的处理方式,尤其是在有大量数据的情况下。 什么是获得相同结果的更快方法?
谢谢。
在timestamp
上创建索引,然后使用:
where timestamp >= '2013-07-01' and timestamp < '2013-08-01'
这将使用索引并表现良好。
您将索引创建为:
create index <your table name>_timestamp on <your table name>(timestamp);
问题在于它在每个比较中都应用了一个函数。 您可以使用以下方法解决此问题:
不调用函数:
where timestamp between date '2013-07-01' and date '2013-07-31'
另一种方法:创建函数索引:
create index myIndex on myTable(MONTH(timestamp),YEAR(timestamp));
有关信息: MySQL中是否可以有基于函数的索引?
搜索日期范围,包括7/1和8/1。
WHERE timestamp >= '2013-07-01' and timestamp < '2013-08-01'
Mysql会自动从YYYY-MM-DD格式中自动解析日期。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.