[英]How to improve performance of Insert INTO (…) select query?
現在,我正在嘗試編寫一個查詢,以減少數據庫中的數據。 我的計划是在一分鍾內得到平均值。
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秒)這里的問題是,我想對整個數據集重復該查詢(總是加一分鍾),這樣計算起來會花費太多時間。 所以我想知道是否有一種方法可以加快此插入過程。 通常,insert語句也可以非常快速地工作。 因此,我認為在一個查詢中鏈接插入和選擇時會出現問題。
多虧了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
這里的想法是使用group by創建時間間隔,這樣我就不必通過循環遍歷數據集,而只需要使用一次插入。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.