2010-03-31 42 views
0

我有一個遺留的Java系統,每次它得到一個命令時,它都會爲訂單中的每個字段的存儲過程進行JDBC調用。通常,對於每個訂單,存儲過程將被調用20到30次。存儲過程只是對每個字段的表格進行插入。改進mysql JDBC插入調用

我需要改善此操作的性能。我以前想過的是創建一個插入查詢字符串,在一次JDBC調用中執行多次插入。 MySql支持多重插入字符串。

INSERT INTO PersonAge (name, age) 
VALUES ('Helen', 24), 
     ('Katrina', 21), 
     ('Samia', 22), 
     ('Hui Ling', 25), 
     ('Yumie', 29) 

這有隻需要每個訂單一個JDBC調用的優勢。關於如何提高性能的任何其他想法?

回答

2

創建一個事先準備好的聲明,或批量更新(在Java中,這將是PreparedStatement,或者Statement.executeBatch())。準備好的語句可能會更快,因爲您只需將值提交給數據庫,而不是整個查詢。嘗試其中的每一個,並運行基準。