我有一个数据库查询,该查询在某些给定条件下从数据库中删除。查询是由一个端点发起的,如果查询花费很长时间(它这样做),它将超时。成功执行此操作后,调用此终结点的服务需要执行其他一些任务。因此,我们需要知道此查询何时完成。查询是:
从foo的creation_time之间删除吗?和? AND bar_id =吗?
我怎么知道查询何时完成?我正在使用 jdbctemplate 查询数据库。
我想到了一个选项,但现在确定了between
查询在内部如何工作。
我想到创建一个状态端点来检查查询是否仍在运行?端点将检查foo
中是否有任何行,其中creation_time = FROM
和bar_id = id
。
但是我不知道mysql如何在内部处理BETWEEN
查询。如果它开始从 FROM 或 TO 或两者之间的任何内容删除。
简短的问题:如何使用jdbctemplate检查查询是否仍在运行或完成?
答案 0 :(得分:1)
您可以执行SHOW FULL PROCESSLIST;
命令。有关该命令的详细说明,请参见MySQL docs。
这将显示所有正在运行的线程,以及当前正在执行的查询及其运行时间。
然后解析输出以查看查询是否仍在运行。
希望这会有所帮助。