【发布时间】:2014-01-23 04:40:48
【问题描述】:
我有一个包含数百万行的表,其中一列是 TIMESTAMP,我经常根据它选择日期范围。索引该列会提高性能,还是不会提供任何显着的改进?
编辑:
所以,我已经为 TIMESTAMP 列编制了索引。以下查询
select count(*) from interactions where date(interaction_time) between date('2013-10-10') and date(now())
需要 3.1 秒。
交互表中有超过 300 万条记录。
上面的查询产生了 ~976k 的结果
这似乎是执行此任务的合理时间吗?
【问题讨论】:
-
性能优化是一门火箭科学。对于它目前提出的问题 - 无法判断它是否会使它变得更好或更糟。提供更多详细信息,包括您要优化的查询示例和表架构。
-
对不起,这个问题是题外话,因为它不会帮助未来的访问者。问题至少需要您的表定义、查询和解释语句。这是真正可以自己测试的东西。
-
为什么是-1?对我来说似乎是一个完全合理的问题(事实上,我发现了一个非常相似的问题,有 +3 票,它只是没有完全按照我的需要回答我的具体问题)。
-
诸如“执行这项任务的时间是否合理?”等假设性问题是题外话。请参阅帮助中心。
-
@GeniaS。如果不知道您的硬件(CPU、RAM、磁盘 IO 等)和数据大小(100 行还是 1000 亿行?),就没有“合理的时间”,因此正如 FreshPrince 所指出的那样,这部分确实无法回答。另一部分,关于索引是否有帮助,可以(某种程度上)回答。
标签: mysql optimization indexing