面试题-MySQL如何定位慢查询

慢查询出现的情况就这些:聚合查询、多表查询、表数据量过大查询、深度分页查询。

表象:页面加载过慢、接口压测响应时间过长(超过1S)。

假如你的业务接口就是比较慢,你怎么知道是SQL的问题呢?就算是SQL的问题,你怎么找出执行慢的SQL呢?

如何定位慢查询:

1.慢查询工具

调试工具:Arthas

运维工具:Prometheus、Skywalking

2.MySQL自带的慢日志查询

慢日志查询默认是关闭的,需要手动开启。

slow_query_log=1开启MySQL慢日志查询开关。(slow_query_log=0默认关闭)

long_query_time=2。SQL语句执行超过2秒,就会视为慢查询,就会记录到慢查询日志。

慢日志文件目录:/var/lib/mysql/localhost-slow.log

你可能感兴趣的:(mysql,数据库)