RJ博客

Mysql 慢查询 全表扫描 文本索引排查方案

本文目录

最近在做MySQL的全表扫描、慢查询、文本索引优化需要抓取到线上执行的sql进行判断由于项目代码过多,直接从代码排查难度有点大,于是借助了MySQL命令

查看哪些线程正在运行(只能抓取正在运行的语句)

show processlist;

SHOW PROCESSLIST显示哪些线程正在运行,如果您有SUPER权限,您可以看到所有线程,否则,您只能看到您自己的线程(也就是,与您正在使用的MySQL账户相关的线程),如果您不使用FULL关键词,则只显示每个查询的前100个字符,如果查询的相关条件超过100条,可以使用show full processlist;来查看全部;


查看执行时间

1 show profiles; 

2 show variables;查看profiling 是否是on状态; 

3 如果是off,则 set profiling = 1; 

4 执行自己的sql语句; 

5 show profiles;就可以查到sql语句的执行时间;


explain 解析SQL语句

可结合美团的SQLAdvisor做索引优化,优化文本索引(file sort),group by、order by用到的索引。



Refer:

http://blog.51cto.com/12217917/2062941

https://blog.csdn.net/weixin_37288522/article/details/79710909

相关推荐

发表评论