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