内容目录(原文见公众号python宝)
一、top 看命令查看是否是数据库导致的二、分析语句,查看连接数三、explain 分析sql语句www.xmmup.com
一、top看命令查看是否是数据库导致的
1、通过top命令可以看到哪个进程的cpu是高的。
当 cpu持续飙升时,先用操作系统命令 top 命令观察是不是 mysqld 占用导致的,如果不是,找出占用高的进程,并进行相关处理。如果是 mysqld 造成的, show processlist,看看里面跑的 session 情况,是不是有消耗资源的 sql 在运行。找出消耗高的 sql,看看执行计划是否准确, index 是否缺失,或者实在是数据量太大造成。一般来说,肯定要 kill 掉这些线程(同时观察 cpu 使用率是否下降),等进行相应的调整(比如说加索引、改 sql、改内存参数)之后,再重新跑这些 SQL。也有可能是每个 sql 消耗资源并不多,但是突然之间,有大量的 session 连进来导致 cpu 飙升,这种情况就需要跟应用一起来分析为何连接数会激增,再做出相应的调整,比如说限制连接数等
show processlist; # 命令可以查看数据库当前正在执行的线程
命令返回的