2017-06-09 82 views
0

我試圖用一個表的內容複製到另一臺:如何加速MySQL從select中插入?

INSERT INTO table1 
SELECT * FROM table2 
WHERE ... 

有700萬行。所以查詢可能會運行幾個小時。有什麼辦法可以加快這個過程嗎?

+2

爲列中的列添加索引 –

+0

table1是空的? – georgeos

+0

@georgeos否,表1已經有一些行 –

回答

-2

拆分操作正常,

檢索第一個和下插入,這將平衡讀取和在鎖定了時間寫操作和數據庫鎖定。

您的總執行時間將比現在的執行時間快得多。

希望你和你的存儲過程或函數

在做這個始終檢索記錄集先做臨時存儲和插入。當使用存儲過程時,它會消耗數據庫內存,當您執行插入操作時選擇與單個線程中的並行處理相同的操作,這會使數據庫操作變慢並導致模糊不清

+0

請詳細解釋。 –

+0

請參閱我的編輯 –