我有兩個表,一個鏈接到另一個的主鍵。此刻我插入到表A中,獲取LAST_INSERT_ID,然後插入到表B中。使用Mysql在鏈接的表上執行多個INSERT
但是我有數百條記錄要插入,我想加快速度。
在MySQL中,您可以:
INSERT INTO table_a (v1, v2, c3) VALUE (0, 1, 2);
INSERT INTO table_a (v1, v2, v3) VALUE (4, 5, 6);
等,或
INSERT INTO table_a (v1, v2, v3) VALUE (0, 1, 2), (4, 5, 6), etc
多個條目添加更快 - 但只有一個表。
當然後者要快得多。我想知道是否可以使用存儲過程對兩個鏈接表複製此行爲,以及它是否會在性能上有類似戲劇性的改進:
類似於:call special_insert((0,1, 2),(4,5,6)等);或類似的。
我沒有存儲過程的經驗,所以我在釣魚的想法在其上進行方向。
該SP會讓你模擬一個多表單片插入。問題是......如何將參數列表中的表A數據與表B數據分開。 – 2012-04-09 15:23:17
好吧,通過編寫我自己的存儲過程,我會知道參數列表中的數據意味着什麼...... SP是否會比單獨的INSERTS快得多? – 2012-04-09 15:32:19
我不太瞭解。你必須對兩種方法進行基準測試,但最終你仍然會做兩次插入,並且無法解決這個問題。 – 2012-04-09 15:45:15