2016-08-27 22 views
0

我创建了一个自定义Web API,用于将数据提交给我的Java应用程序的MYSQL服务器。在我的Java应用程序中,我需要添加/更新200行,并且我已经让它每次提交一个请求。Java与线程API服务器的多种连接

  1. 这可能非常耗时,所以我可以为这些不同连接的所有 创建线程吗?
  2. 我应该限制一次最多连接的数量吗?也许每次10个?
  3. 这是否会导致mysql 可能在同一时间添加行的任何问题? (将永远不需要使用2行 在单个时间点被改变)的多个连接将有可能加快200个将

回答

1

插入记录,但你只能通过测试,之后测量肯定知道引入多个线程。我还会建议尝试JDBC批处理,并一次将所有200个插入数据发送到数据库(如果在您的实现中可能的话),因为这可以通过节省往返数据库的性能来提高性能。

要创建连接池,请参阅HikariCP这是一个JDBC连接池实现。它将允许您指定最小/最大并发连接以及其他设置。您的工作线程然后可以请求来自池的连接并执行插入。

如果为每个插入操作获取表锁,则可以在mySQL级别同时插入多个记录。在这种情况下,您将无法通过多线程获得速度提升,并且可能需要在数据库级别进行一些调整才能解决此问题。这里有一篇很好的文章应该有所帮助:High rate insertion with mySQL