我有一个审计表,目前在innodb上运行大约25M行,并且每月增长大约1M行。 我目前在datetime列上有一个索引。 出于性能原因,如果用户将其限制搜索到当天。 如果我将日期时间拆分为两个单独的字段并且在日期字段上只有索引,那么索引性能会更好。 我怀疑这也会创建一个较小的索引,因为你没有索引datetime字段的每一个单独的秒。 我也可以从分区表中受益。
聚苯乙烯。目前正在运行percona 5.5。
答案 0 :(得分:0)
这取决于查询的措辞方式。如果查询的措辞如下:
where date(datetimecol) = curdate()
然后索引将不会被使用。如果查询的措辞为:
,则添加带索引的日期列可以提高性能where datecol = curdate()
如果查询的措辞如下:
where datetimecol >= curdate () and
datetimecol < date_add(curdate(), interval 1 day)
然后(可能)使用索引。