2013-04-13 47 views
1

我有一個node.js腳本作爲服務器上的cron作業運行。加速MySQL中巨大的多個查詢語句的性能

它異步接收來自外部數據源(幾個併發請求)的數據並使用多個查詢語句更新數據庫,其中UPDATE查詢以分號分隔。

一個8000-UPDATES多查詢運行約55秒。

有沒有辦法加快整個數據庫更新過程?

單查詢很簡單 - 像

UPDATE my_table SET field1 = smth WHERE id = some_id; 

該指數爲ID場創建。

+0

向我們展示您的查詢和索引,以便了解查詢的結構。有多少個查詢? – Niels

+0

是的,我第二次展示查詢,架構和每個表的行數,沒有那個信息只是猜測。 – CodeMonkey

+0

我更新了帖子:) – zavg

回答

1

減少執行的查詢次數將是您最大的勝利。也許是一個INSERT ...在複製密鑰更新

INSERT INTO my_table (id, field1) 
    VALUES 
     (1, 'smth'), 
     (10, 'smth2'), 
     (88, 'smth3'), 
     (23, 'smth4'), 
     (68, 'smth5') 
    ON DUPLICATE KEY UPDATE 
     id = VALUES(id), 
     field1 = VALUES(field1); 
+0

謝謝你好多!它是如何工作的驚人! :)) – zavg