现在我正在使用:
MONTH(timestamp) = '7'AND YEAR(timestamp) = '2013'
要按日期选择,但我被告知这是一种非常低效的方法,特别是对于大量数据。什么是获得相同结果的更快方法?
感谢。
答案 0 :(得分:2)
在timestamp
上创建索引,然后使用:
where timestamp >= '2013-07-01' and timestamp < '2013-08-01'
这将使用索引并表现良好。
您可以将索引创建为:
create index <your table name>_timestamp on <your table name>(timestamp);
答案 1 :(得分:1)
问题是它在每次比较时都应用了一个函数。您可以通过以下方式解决此问题:
不调用函数:
where timestamp between date '2013-07-01' and date '2013-07-31'
另一种方式:创建功能指数:
create index myIndex on myTable(MONTH(timestamp),YEAR(timestamp));
答案 2 :(得分:0)
搜索日期范围,包括7/1,不包括8/1。
WHERE timestamp >= '2013-07-01' and timestamp < '2013-08-01'
Mysql有助于自动解析YYYY-MM-DD foramt中的日期。