暂无图片
如何定位出导致单核cpu高的慢查询语句
我来答
分享
暂无图片 匿名用户
如何定位出导致单核cpu高的慢查询语句

通过top语句,查看mysql每个线程的cpu占用情况,如下图


如何能实时捕捉到导致cpu飙升的慢查询语句,麻烦大佬们解答下,谢谢!

我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
刘贵宾

通过 show processlist; 或 show full processlist; 命令查看当前执行的查询,反复执行,找到慢查询的process ID

暂无图片 评论
暂无图片 有用 0
打赏 0
刘贵宾
答主
2022-08-25
可以看看这个 https://juejin.cn/post/7062609955009871885
手机用户8157
2022-08-25
感谢,我是想通过线程id直接把实时的慢sql捕捉到,不是说定位找出慢sql,谢谢
张sir

1、查看show full processlist=====》这里会记录当前数据库正在执行的所有的sql的情况,重点关注执行时间。

2、查看慢日志,通过慢日志找到频繁执行的慢SQL。

3、在performance_schema种有threads表,查询threads表,将字段thread_os_id=你查询出来的pid。然后你就能得到prosesslist_id。将这个值,拿去和processlist进行查询,就能得到具体的sql语句。

暂无图片 评论
暂无图片 有用 0
打赏 0
手机用户8157
2022-08-25
感谢,我的意图是想找出当时cpu飙升的实时慢sql,针对您说的第三点实验过不能捕捉到实时的,这个慢sql可能只是瞬间的
手机用户8157

我的意图是想找出当时cpu飙升的实时慢sql,针对您说的第三点实验过不能捕捉到实时的,这个慢sql可能只是瞬间的

暂无图片 评论
暂无图片 有用 0
打赏 0
张sir

做到实时很难,总要有一个采样周期。如果该SQL执行频率比较低,其实危害是有限的。如果是高频慢SQL,调整慢查询时间或者多次执行show processlist,大概率是能捕获到的。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
explain analyze 后语句没有被真正执行,怎么回事?8.0.18
回答 1
写成这样看看,explainanalyzedeletefromtest.td,test是数据库名。
mysql慢日志怎么记录指定的数据库或者使用什么工具可以只查某个数据库的慢sql?
回答 1
目前常用的ptquerydigest慢日志分析工具,不支持这样,你可以选择某个时间段的,然后手动去找到你想要的对应的慢sql
mysql双写double write的疑问
回答 1
已采纳
从内存(缓冲池)刷脏页到数据页.
explain analyze delete 后出现not executable by iterator executor 提示,是什么意思?
回答 2
它表示查询计划无法通过迭代执行器来执行。这通常发生在以下情况下:查询计划使用了一些不支持迭代执行器的操作符:有些操作符可能无法被迭代执行器处理,例如某些特定的聚合函数、子查询类型等。因此,如果查询计划
MySQL 数据库能按ID顺序读取数据吗?
回答 2
已采纳
查询数据的时候,后面加个orderbyid
Lock-Based &&Commit-Parent-Based 模式?
回答 2
1
MySQL 报错2003,怎么解决?
回答 1
一般来说这个10038错误,而不是说2003错误这个错误通常由防火墙问题导致
mysql中rc隔离下,select for update和update的不同?
回答 2
selectforupdate执行计划走的全表扫描,mysql就会锁全表update走的是主键索引,在rc模式下,就锁单个记录。
Percona XtraDB Cluster
回答 6
上传附件:error.log
MYSQL 如何看出执行计划里面 依赖子查询的执行次数?
回答 1
已采纳
如果是嵌套的话,子查询查出多少就是循环多少次