如何定位慢查询?
慢查询出现的情况有这些:
- 聚合查询
- 多表查询
- 表数据量过大查询
- 深度分页
表象:网页加载过慢,接口压测响应时间过长(如1秒)
假如就是接口比较慢,如何确定就是SQL慢的问题呢?
通常情况下:我们定位慢查询有两种方式,方案一:就是使用一些开源工具进行监听和调试。
- 调试工具:Arthas(通过命令的方式去监控已经上线的项目,跟踪执行比较慢的方法,查询执行的时间,最终确定哪里出了问题)
- 运维工具:Prometheus、Skywalking(有些指标的数据,可以实时查看接口的情况) 方案二:使用MySQL自带的工具,MySQL自带的慢日志查询 配置slow_query_log=1、long_query_time=2