gpt4 book ai didi

mysql - 如何提高 Insert INTO (...) select 查询的性能?

转载 作者:行者123 更新时间:2023-11-29 09:37:06 25 4
gpt4 key购买 nike

现在我正在尝试编写一个查询来减少数据库中的数据。我的计划是获取一分钟的平均值。

INSERT INTO reduced (current, total, time_stamp)
SELECT
AVG(current) AS average,
MAX(total) as total,
MAX(time_stamp)
FROM
(
SELECT * from data2 WHERE id <= '500' AND id >= '6'
) AS test
WHERE
time_stamp <= '2019-05-03 21:24:30' AND
time_stamp >= '2019-05-03 21:23:30'

如果我只执行 Select 语句,它会在 0,002 秒内完成。但是一旦我添加 INSERT 部分,它就需要几秒钟。 (3-5秒)这里的问题是,我想对整个数据集重复该查询(总是添加一分钟),这样计算就会花费太多时间。所以我想知道是否有办法加快这个插入过程。通常情况下,插入语句的运行速度也非常快。所以我认为在一个查询中链接插入和选择时会出现问题。

最佳答案

感谢 Tim Biegeleisen,我找到了以下解决方案:

INSERT INTO reduced (current, total, time_stamp) 
SELECT AVG(current) AS average
, MAX(total) as total
, MAX(time_stamp)
FROM data2
GROUP
BY UNIX_TIMESTAMP(time_stamp) DIV 60

这里的想法是使用分组来创建时间间隔,这样我就不必使用循环迭代数据集,而只需使用一次插入。

关于mysql - 如何提高 Insert INTO (...) select 查询的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57359946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com