优化MySQL中的日期查询

时间:2011-03-02 14:00:34

标签: java mysql datetime optimization date

我有一系列具有MySQL日期和时间属性的表,其中每个表可以包含数千行。我需要能够以交互方式读取这些表,以便检索满足日期范围的这些行。所以我的SQL可能是:

select column_1, column_2 from table_name where createddate between '2011-01-01' and '2011-01-31';

某些查询也可能在第x天的时间p到第z天的时间q。

日期属于MySQL类型DATE,时间类型为TIME。

有谁知道什么是优化此类查询的好方法?我可以在日期和时间列上创建索引,使用TIMESTAMP作为替代等。

由于

摩根先生。

2 个答案:

答案 0 :(得分:1)

如果您的日期和时间列上有索引,MySQL应优化这些查询。

您可以使用SQL EXPLAIN命令确认实际发生的情况,请参阅:http://dev.mysql.com/doc/refman/5.0/en/explain.html

答案 1 :(得分:0)

我建议在DATE列

上建立索引
ALTER TABLE table_1 ADD KEY (date_col_1);

您可能不需要TIME列上的索引。如果每个日期的行数相对较少,我会跳过这个,因为它可能只是不需要的开销。