我想知道是否有可能记录(或以另一种方式检测)一个查询,一旦它达到 long_query_time,它就会花费太多时间来执行。因为 MySQL 只在它们完成执行时记录慢查询。
我知道我可以通过检查 MySQL 管理员的“服务器连接”选项卡在完成之前看到缓慢的查询,但我希望在它发生时自动收到通知(使用日志更容易)。
我想知道是否有可能记录(或以另一种方式检测)一个查询,一旦它达到 long_query_time,它就会花费太多时间来执行。因为 MySQL 只在它们完成执行时记录慢查询。
我知道我可以通过检查 MySQL 管理员的“服务器连接”选项卡在完成之前看到缓慢的查询,但我希望在它发生时自动收到通知(使用日志更容易)。
如果您愿意轮询数据库以检查查询是否运行超过 x 秒,则可以使用show processlist,或直接转到process list table。
select * from INFORMATION_SCHEMA.PROCESSLIST where time > TIME_IN_SECS
这会给数据库增加更多负载,所以我不建议每秒都这样做。但这意味着您不会“一旦达到 long_query_time”就获得信息。