1

我们正在运行一个 Java 服务器应用程序,它需要从 MySQL 数据库中获取信息,以便向连接的客户端显示数据。但是,由于一次连接的客户端很多,它必须在很短的时间内执行很多查询。

因此,存在主要的滞后/延迟,线程将死锁并暂停,直到查询完成......

除了使其异步之外,我们是否可以使用任何方法来防止线程在等待数据库时锁定,因为我们需要同步数据?

我见过诸如连接池之类的东西,但是我们需要一种方法来同步地从数据库中获取数据,而不会使服务器应用程序的其余部分滞后。

应该是当用户点击x时,会发生y而不是用户点击x,程序锁定并暂停 2 秒,然后y将在查询完成后发生。

4

3 回答 3

2

连接池绝对是要走的路。

如果您正在使用诸如 GlassFish 之类的 Web 应用程序,则可以通过创建一个到数据库(例如 MySQL)的连接池,然后使用 JNDI 命名服务访问该池来执行此操作。这种组合可以更有效地使用数据库访问。

这篇文章非常适合。

于 2013-09-15T11:01:05.290 回答
1

除了使用(优化的)连接池之外,我想不出任何其他解决方案。您可以通过单击此处查找如何优化连接池

于 2013-09-15T10:59:15.117 回答
0

此外,由于您的数据库很大,请确认您的所有查询都有适当的索引,MySQL 是否使用它们,并且作者优先于读者。

于 2013-09-15T11:27:03.827 回答