mysql之慢sql问题排查

mysql之慢sql问题排查,第1张

0、首先排除机器问题,如cpu、内存情况

1、根据日志找到sql语句,从两点,一是索引、二是语句的写法

2、使用mysql的explain+语句形式,排查是否引用索引,通过key、extra,key表示有没有用到索引,用到的是哪个索引,像like、or等是索引失效的,extra using index表示覆盖索引,usingwhere表示where条件用到了索引,通过explain结果,修改sql语句,该加索引加索引,该修改语句修改语句

3、语句编写上,子查询、关联查询大表小表

4、部署测试

MySQL处在高负载环境下,磁盘IO读写过多,肯定会占用很多资源,必然CP会U占用过高。

占用CPU过高,可以做如下考虑:

1.打开慢查询日志,查询是否是某个SQL语句占用过多资源,如果是的话,可以对SQL语句进行优化,比如优化 insert 语句、优化 group by 语句、优化 order by 语句、优化 join 语句等等;

2.考虑索引问题;

3.定期分析表,使用optimize table;

4.优化数据库对象;

5.考虑是否是锁问题;

6.调整一些MySQL Server参数,比如key_buffer_size、table_cache、innodb_buffer_pool_size、innodb_log_file_size等等;

7.如果数据量过大,可以考虑使用MySQL集群或者搭建高可用环境。

iostat -dx 1 观察磁盘读写情况,如果有十几M的读/写 就要留意了

vmstat 1 看看CPU 的Idle情况 ,如果idle很低 有可能是MySQL的语句很耗CPU

top看看有啥大损耗的进程否


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/8680518.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-19
下一篇2023-04-19

发表评论

登录后才能评论

评论列表(0条)

    保存