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