检查长时间运行的查询的状态

时间:2019-02-06 14:32:34

标签: mysql database jdbctemplate

我有一个数据库查询,该查询在某些给定条件下从数据库中删除。查询是由一个端点发起的,如果查询花费很长时间(它这样做),它将超时。成功执行此操作后,调用此终结点的服务需要执行其他一些任务。因此,我们需要知道此查询何时完成。查询是:

  

从foo的creation_time之间删除吗?和? AND bar_id =吗?

我怎么知道查询何时完成?我正在使用 jdbctemplate 查询数据库。 我想到了一个选项,但现在确定了between查询在内部如何工作。

我想到创建一个状态端点来检查查询是否仍在运行?端点将检查foo中是否有任何行,其中creation_time = FROMbar_id = id。 但是我不知道mysql如何在内部处理BETWEEN查询。如果它开始从 FROM TO 或两者之间的任何内容删除。

简短的问题:如何使用jdbctemplate检查查询是否仍在运行或完成?

1 个答案:

答案 0 :(得分:1)

您可以执行SHOW FULL PROCESSLIST;命令。有关该命令的详细说明,请参见MySQL docs

这将显示所有正在运行的线程,以及当前正在执行的查询及其运行时间。

然后解析输出以查看查询是否仍在运行。

希望这会有所帮助。