在过去的两天里,我们面临着一个关键问题,在我们的 Prod Env 中使用 mysql 进行缓慢查询(主要是 myisam 表较旧的表)
现在我们正在通过 nagios 跟踪进程列表、cpu 使用率等。
是否可以跟踪发生的慢查询问题并占用整个内存并停止其他查询以继续传递。
需要澄清如何处理 Live ENV 中的慢查询以及如何获得通知。
在过去的两天里,我们面临着一个关键问题,在我们的 Prod Env 中使用 mysql 进行缓慢查询(主要是 myisam 表较旧的表)
现在我们正在通过 nagios 跟踪进程列表、cpu 使用率等。
是否可以跟踪发生的慢查询问题并占用整个内存并停止其他查询以继续传递。
需要澄清如何处理 Live ENV 中的慢查询以及如何获得通知。
你用的是mysql慢查询日志吗?它就是这样做的,记录缓慢的确切mysql。你没有提到这个,它可能是你要找的东西?
https://dev.mysql.com/doc/refman/5.1/en/slow-query-log.html
服务器按以下顺序使用控制参数来确定是否将查询写入慢查询日志:
查询不能是管理语句,或者必须指定 --log-slow-admin-statements。
查询必须至少花费 long_query_time 秒,或者必须指定 --log-queries-not-using-indexes 并且查询没有使用索引进行行查找。
查询必须至少检查 min_examined_row_limit 行。
然后,您将通过执行EXPLAIN
路线和所有这些来进行优化。
我们使用OpsDash跟踪慢查询并在 Slack 频道上向我们发送警报。在另一个回复中提到,“慢”的定义可以在conf文件中指定。