正在进行长时间运行的查询时,如何处理并发数据库请求或如何运行简短的sql查询

时间:2019-05-09 14:01:35

标签: java mysql database jpa java-ee

考虑到有一个用户请求,该请求需要在后端执行sql查询,并且需要返回结果数据作为响应,但是用户已经发起了另一个由运行时间很长的sql查询组成的请求。 / p>

正在进行较长的查询时,我需要数据库来处理较短的查询(使较短的查询比长时间运行的查询具有更高的优先级)。

  1. 是否可以通过调整数据库服务器来实现这种并发执行?
  2. 可以使用Java线程来实现这一目标吗?是正确的选择吗?

1 个答案:

答案 0 :(得分:0)

大多数数据库通常使用Multiversion concurrency control (MVCC)或其他机制来支持并发语句执行。客户端通常可以打开与数据库服务器的多个连接,并在每个连接中运行不同的SQL状态菜单。

您需要检查数据库服务器如何处理并发,您可以先看看this answer for MySQL。然后查看JDBC Basics docs,以了解如何打开多个连接。会有陷阱,例如transaction isolation levels或特定于您的用例的锁处理。