我有一系列具有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作为替代等。
由于
摩根先生。答案 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列上的索引。如果每个日期的行数相对较少,我会跳过这个,因为它可能只是不需要的开销。