我最近將Apache Tomcat JDBC連接池合併到我的應用程序(使用MySQL DB)。我之前嘗試過使用Apache DBCP,但不喜歡它的結果,即使我運行獨立的Java應用程序並且完全不使用tomcat,tomcat實現似乎也符合我的需求。Apache Tomcat JDBC連接池在批量批量插入時性能不佳
最近,我在執行批量(又名批量)插入查詢時遇到了巨大的性能問題。
我有一個流程,我以批處理的方式將2500條記錄插入表中。在使用jdbc連接池時需要花費很長時間,相比之下,當恢復爲每個查詢打開一個連接(不使用池)時,需要幾秒鐘的時間。
我寫了一個小應用程序,插入30行到同一個表。共用時需要12秒,當不共用時需要800毫秒。
在使用連接池之前,我使用了com.mysql.jdbc.jdbc2.optional.MysqlDataSource
作爲我的數據源。連接已配置了以下行:
dataSource.setRewriteBatchedStatements(true);
我敢肯定,這是兩種方法之間的核心差異,但找不到在JDBC池的等效參數。
10x爲答案。我不介意批處理操作是否是「半」純的,只要他們花費最少的時間,就像我在問題底部展示的那樣。我在jdbc-pool(或任何其他池)中尋找這些「半」純批處理的等價物。 – KidCrippler
您應該將參數'?rewriteBatchedStatements = true'添加到jdbc url。 – sibnick
10倍,解決了性能問題! – KidCrippler