Spring与远程DB。如何最小化网络延迟开销?

时间:2012-05-17 02:16:02

标签: java mysql spring remote-server

我有2台服务器,一台使用Spring进行数据库连接处理的Java应用程序,另一台使用MySQL。 两台服务器之间的Ping延迟大约为100毫秒。

Java服务器一次使用批量插入DB,2000行。似乎需要100ms x 2000次插入= 200,000 ms才能进行批量插入!

有没有办法减少这种网络延迟?使用交易有助于减少它吗?

非常感谢任何想法。

2 个答案:

答案 0 :(得分:1)

交易只会给你更多开销。 (虽然这当然并不意味着你不应该使用它们。)我认为批量做事可能有所帮助。这将减少为每个插入创建新网络连接的开销。您也可以考虑在可能的情况下在Java服务器上缓存内容;虽然这只会有助于读取,而不是写入。

答案 1 :(得分:1)

与其他答案一样,请尝试使用批处理。但是,如果MySQL JDBC驱动程序没有优化它们,它将无济于事。有关其他可能的解决方案,请参阅此处的答案:JDBC batch insert performance