0
让我们考虑下表。在MySQL中的性能比较由MySQL
表:
ID
epoch_time_in_millis
counter
查询#1:
SELECT
DATE_FORMAT(FROM_UNIXTIME(epoch_time_in_millis/1000),"%Y-%m-%d") date,
SUM(counter) totalCount
FROM my_table
GROUP BY date
查询#2:
SELECT
(epoch_time_in_millis DIV 86400000) * 86400000 ms,
SUM(counter) totalCount
FROM my_table
GROUP BY (epoch_time_in_millis DIV 86400000) * 86400000;
我的问题是: 上述两个查询是否会显示性能差异?
如果是,请让我明白为什么。 如果不让我明白为什么。 :p
在此先感谢。
感谢您的回答。让我们考虑一下表中有数百万行。上述两个查询的性能还是不一样的?由于第二个查询涉及乘法和除法操作,我猜想这两个实际上在长期运行中是不同的。你能澄清一下吗? @GordonLinoff –
@AnonymousOne。 。 。通常,在三级存储中获取和管理记录的开销比每个查询的几个算术操作要大得多。肯定的情况是,情况并非如此(例如,对于用户定义的函数或对于非常长的字符串的函数),但是这种性质通常是过度优化的。 –
我在同一个数据集(〜100K行)上分别运行了这两个查询。在连续10000次运行中,查询#2总是优于查询#1。查询#1所花费的运行时间总是比查询#2花费的时间大2.5倍。 –