2015-08-20 70 views
0

我有一個用戶可以按下一個按鈕來生成數據列表,並且該列表中的每個元素都需要在數據庫表中插入相應的數據行。插入多行,簡單循環或MySQL存儲過程?

當他們按下按鈕時,我會插入大約4-8行數據,大約有5個字段,所以根本不是一個大問題。因此,從性能角度來講,更好的做法是創建一個運行4個獨立INSERT查詢的for循環,或者我可以使用stored procedure做什麼?我不確定是否值得爲這樣小的事情創建存儲過程。

我無法真正使用一個INSERT查詢一次插入多行,因爲這需要大量額外的代碼來構建我的node.js服務器上的查詢字符串。

回答

1

如果插入少於10行,我發現多次運行insert沒有問題。您會產生大量開銷,啓動並提交事務並將數據傳遞到數據庫中。但是,數據庫可以處理數百個插入,所以對於小型用戶羣來說,這可能足夠好。

不過,我不明白爲什麼insert . . . values將難:

insert into t(a, b, c) 
    values ('a1', 'b1', 'c1'), 
      ('a2', 'b2', 'c2'), 
      . . .; 

這似乎並不比遍歷擺在首位的數據更難。