我经常使用以下查询:
SELECT * FROM table WHERE Timestamp > [SomeTime] AND Timestamp < [SomeOtherTime] and publish = 1 and type = 2 order by Timestamp我想优化这个查询,我正在考虑将时间戳作为聚集索引的主键的一部分,我认为如果时间戳是主键的一部分,表中插入的数据已经按时间戳field.Also顺序写入磁盘--我认为这大大改进了我的查询,但不确定这是否有帮助。
table has 3-4 million+ rows.
timestamp field never changed.
I use mysql 5.6.11要点是:如果这改进了我的查询,最好使用时间戳( mysql 5.6中的4字节)或日期时间( mysql 5.6中的5字节)?
发布于 2013-05-31 11:55:27
请考虑以下几点:
KEY (publish, type, Timestamp)。通过您选择的查询,我得到publish和type的过滤是常见的。PRIMARY KEY是唯一的。您确定不允许有两个相同的Timestamp值吗?请记住,分辨率是1秒,因此对于不同的行具有相同的TIMESTMAP值是非常常见的。AUTO_INCREMENT列作为PRIMARY KEY (参见使用汽车的原因_InnoDB上的增量列)。我的一般观点是在(publish, type, Timestamp)上使用一个正常的索引。发布于 2013-05-31 11:46:29
https://dba.stackexchange.com/questions/43499
复制相似问题