linux环境下排查cpu占比高的MySQL数据库sql语句

摘要:
自MySQL5.7版本后,PERFORMANCE_SCHEMA.THREADS表中新增一个字段THREAD_OS_ID,对应操作系统中的线程ID1.安装sysstat工具包(为了使用pidstat命令),更多信息参考:https://www.linuxidc.com/Linux/2019-08/160082.htmUbuntu:apt-getinstallsysstatCentOS/RedHat:

自MySQL 5.7版本后,PERFORMANCE_SCHEMA.THREADS表中新增一个字段THREAD_OS_ID,对应操作系统中的线程ID

1.安装sysstat工具包(为了使用pidstat命令),更多信息参考: https://www.linuxidc.com/Linux/2019-08/160082.htm

Ubuntu: apt-get install sysstat
CentOS/RedHat: yum -y install sysstat

2.查看linux系统中cpu占比高的线程id,使用"pidstat -t -p <mysqld_pid> 1"命令

-t: 表示显示线程id,不然默认显示进程id

-p <mysqld_pid>: 表示只显示mysql进程下的线程,mysql pid可通过top命令查看

1: 表示每秒更新一次

3.查看cpu占比高的线程ID,TID,如32053  linux环境下排查cpu占比高的MySQL数据库sql语句第1张

4.在mysql数据库执行"select * from performance_schema.threads where THREAD_OS_ID = 32053 G"

g 和在sql语句中写’;’是等效的
G 将查到的结构旋转90度变成纵向  linux环境下排查cpu占比高的MySQL数据库sql语句第2张

5.可以看到有个PROCESSLIST_INFO字段,表示的就是SQL语句,最后用explain命令分析SQL,进行优化

参考:

1.https://www.percona.com/blog/2020/04/23/a-simple-approach-to-troubleshooting-high-cpu-in-mysql/

2.https://www.linuxidc.com/Linux/2019-08/160082.htm

3.https://blog.csdn.net/guoqianqian5812/article/details/51754594

免责声明:文章转载自《linux环境下排查cpu占比高的MySQL数据库sql语句》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇.net 反编译利器 dnspyMybatis 示例之 SelectKey(转)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux配置SOCK5代理

一.llinux环境安装 yum update yum install pam-devel openldap-devel openssl-devel yum -y install gcc yum -y install gcc-c++ 二.sock5安装 cd /opt wget http://downloads.sourceforge.net/pr...

Navicat远程连接MySQL数据库

Navicat连接远程MySQL数据库 环境:Ubuntu 18.10 (GNU/Linux 4.18.0-13-generic x86_64)+Navicat 12.0.18(64-bit)-Premium Welcome to Ubuntu 18.10 (GNU/Linux 4.18.0-13-generic x86_64) * Documen...

linux环境weblogic开启远程调试

weblogic开启调试模式 1.linux环境下找到weblogic地址 find ./ -name domains 2>&1 | grep -v "Permission denied" 2.打开weblogic根目录下user_projectsdomains域名insetDomainEnv.sh文件,找到下面这一行 if [ "${d...

Mysql 查询优化,索引原理与慢查询优化。

Mysql 查询优化 索引原理与慢查询优化 一 介绍 为什么要有索引? 一般的应用程序,读写比例在10:左右,而且插入操作和一般的更新操作很少出现性能问题, 在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询, 我们必定要去优化它们,那我们怎么去优化呢?那就要提到索引了。 什么是索引? 索引在MySQL中也叫做“...

[转载]iOS 开发中为什么更新UI都要放在主线程中?

原因有2个: 1、在子线程中是不能进行UI 更新的,而可以更新的结果只是一个幻像:因为子线程代码执行完毕了,又自动进入到了主线程,执行了子线程中的UI更新的函数栈,这中间的时间非常的短,就让大家误以为分线程可以更新UI。如果子线程一直在运行,则子线程中的UI更新的函数栈 主线程无法获知,即无法更新 2、只有极少数的UI能,因为开辟线程时会获取当前环境,如点...

SQL表分区之常规操作分区

新建一个数据库 2)新增的时候添加几个文件组 3)回到“常规”选项卡,添加数据库文件 看到用红色框框起来的地方没?上一步中建立的文件组在这里就用上了。再看后面的路径,我把每一个文件都单独放在不同的磁盘上,而且最好都是单独的放在不同的物理盘上,这样会大大提高数据的性能。 点击“确定”数据库就算创建完成了。 4)接下来要做的是建立一个分区行数,SQL语句...