我的Java应用程序需要在启动时从不同的MySQL表中收集信息。如果没有数据库信息,则无法使用该应用程序。因此,启动需要几秒钟(尽可能减少缓存时间)。
答案 0 :(得分:1)
不,当然不是。例如,当多个用户同时访问您的Web应用程序时,像Tomcat这样的Java Web服务器会一直使用它。
确保使用交易正确管理数据完整性。
答案 1 :(得分:1)
通过并行化而不是串行执行请求来执行请求可能是一个好主意。
注意使用数据源,每个请求必须使用自己的数据库连接(不要同时在不同的线程之间共享连接)。
答案 2 :(得分:1)
确保您的连接池和线程池大小适应性
答案 3 :(得分:1)
数据库会话是相对昂贵的对象。并行化到几个线程没有问题,但是如果你有1000个表,就不要创建1000个线程。
此外,多线程带来了复杂性和潜在的巨大维护成本(例如,竞争条件导致的不可重现的问题)。所以,做你的测量,如果你发现加速只是百分之几,那就把所有东西都放回来。
有更多方法可以避免您看到的延迟。例如,您可以在单个命令批处理中发送多个查询,从而减少代码与数据库之间的往返次数。
答案 4 :(得分:1)
这是你必须要尝试的东西。
如果从每个表中返回相对较少的行,则在每个线程(或jdbc连接池)中建立数据库连接可能比建立一次并执行查询所需的时间更长。
幸运的是,这不是很多代码,所以你应该可以很快地尝试一下。