首页 > 数据库 >mysql 慢查询 常时间 执行 问题排查

mysql 慢查询 常时间 执行 问题排查

时间:2024-08-04 11:29:20浏览次数:8  
标签:slow logs 查询 排查 mysql var query log

1、metadata lock导致大量线程卡住

    步骤1:  show full processlist命令查看线程状态

  步骤2:

    performance_schema.events_statements_current中的未提交事务

  步骤3:

     查询正在执行的事务

  SELECT * FROM information_schema.innodb_trx;

 

  innodb_trx 表结构字段如下:

 最后可以简单 用Kill 

   

  KILL命令的语法格式如下:KILL [CONNECTION | QUERY] thread_id

  步骤如下:

  1、KILL允许自选的CONNECTION或QUERY修改符:KILL CONNECTION与不含修改符的KILL一样:它会终止与给定的thread_id有关的连接。

  2、KILL QUERY会终止连接当前正在执行的语句,但是会保持连接的原状。

  3、如果您拥有PROCESS权限,则您可以查看所有线程。

  4、如果您拥有超级管理员权限,您可以终止所有线程和语句。否则,您只能查看和终止您自己的线程和语句。

  5、您也可以使用mysqladmin processlist和mysqladmin kill命令来检查和终止线程。

首先登录mysql,然后使用: show processlist; 查看当前mysql中各个线程状态。

2、慢查询

 

 

 

 

pt-query-digest

 

  1. # 直接分析慢查询文件:
  2. pt-query-digest /var/logs/mysql/slow.log > /var/logs/mysql/slow_report.log
  3. #分析最近12小时内的查询:
  4. pt-query-digest --since=12h /var/logs/mysql/slow.log > /var/logs/mysql/slow_report2.log
  5. #分析指定时间范围内的查询:
  6. pt-query-digest /var/logs/mysql/slow.log --since '2014-05-17 09:30:00' --until '2014-06-17 10:00:00' > /var/logs/mysql/slow_report3.log
  7. #分析只含有select语句的慢查询
  8. pt-query-digest --filter '$event->{fingerprint} =~ m/^select/i' /var/logs/mysql/slow.log > /var/logs/mysql/slow_report4.log
  9. #针对某个用户的慢查询
  10. pt-query-digest --filter '($event->{user} || "") =~ m/^root/i' /var/logs/mysql/slow.log > /var/logs/mysql/slow_report5.log
  11. # 查询所有所有的全表扫描或full join的慢查询
  12. pt-query-digest --filter '(($event->{Full_scan} || "") eq "yes") ||(($event->{Full_join} || "") eq "yes")' /var/logs/mysql/slow.log > /var/logs/mysql/slow_report6.log
  13. #把查询保存到test数据库的query_review表,如果没有的话会自动创建;
  14. pt-query-digest --user=root –password=abc123 --review h=localhost,D=test,t=query_review --create-review-table /var/logs/mysql/slow.log
  15. #把查询保存到query_history表
  16. pt-query-digest --user=root –password=abc123 --review h=localhost,D=test,t=query_ history --create-review-table /var/logs/mysql/slow.log_20140401
  17. #通过tcpdump抓取mysql的tcp协议数据,然后再分析
  18. tcpdump -s 65535 -x -nn -q -tttt -i any -c 1000 port 3306 > mysql.tcp.txt
  19. pt-query-digest --type tcpdump mysql.tcp.txt> /var/logs/mysql/slow_report9.log
  20. #分析binlog
  21. mysqlbinlog mysql-bin.000093 > mysql-bin000093.sql
  22. pt-query-digest --type=binlog mysql-bin000093.sql > /var/logs/mysql/slow_report10.log
  23. #分析general log
  24. pt-query-digest --type=genlog localhost.log > /var/logs/mysql/slow_report11.log

 存储过程造数据

 

 

 

 

标签:slow,logs,查询,排查,mysql,var,query,log
From: https://www.cnblogs.com/cbugs/p/18341566

相关文章

  • mysql 是否该数据列每个数据都唯一就应该设置唯一索引?
    前言比较一下唯一索引和普通索引的区别。如果有一列数据唯一,这个时候是否是就直接设置唯一索引,这样可以避免插入重复的值,来实现业务需求。那么唯一索引是如何保持唯一的呢?这个对性能是否有影响。正文数据库我们知道是增删改查。那么首先来看下这个查,唯一索引是如何查数据的......
  • MySQL进阶(查询、备份与恢复)
    一、多表联合查询在关系型数据库中,表与表之间是有联系的,所以在实际应用中,经常使用多表查询。多表查询就是同时查询两个或两个以上的表。在MySQL中,多表查询主要有交叉连接、内连接、外连接、分组查询与子查询等5种。1、交叉连接(CROSSJOIN)笛卡尔积交叉连接(CROSSJO......
  • 批量手机号归属地查询
    因为买不起归属地查询接口,于是自己爬了一个网站在爬取网站时有许多曲折,大部分网站都做了反爬,于是发现一个网站没做反爬,但爬取的是图片形式(属实666)我直接想到识别图片来获取文字,返回的形式是(省+市+通讯运营商)首先得下载paddle的各种库,其次在文件中添加一个result.txt文件代......
  • 安装mysql
    第一步:使用最新的包管理器安装MySQLsudodnfinstall@mysql1等待第二步:设置开机自动启动sudosystemctlenable--nowmysqld1然后检查mysql的启动状态sudosystemctlstatusmysqld1第三步:添加密码及安全设置sudomysql_secure_installation1第四步:要求你配置VALI......
  • MySQL数据分析进阶(八)存储过程
    ※食用指南:文章内容为‘CodeWithMosh’SQL进阶教程系列学习笔记,笔记整理比较粗糙,主要目的自存为主,记录完整的学习过程。(图片超级多,慎看!)【中字】SQL进阶教程|史上最易懂SQL教程!10小时零基础成长SQL大师!!https://www.bilibili.com/video/BV1UE41147KC/?spm_id_from=333.1007.0.......
  • docker 主从mysql配置
    1、主机容器dockerrun-d--namemysql-master--networkmy_network-p3307:3306-eMYSQL_ROOT_PASSWORD=密码mysql2、从机容器dockerrun-d--namemysql-slave--networkmy_network-p3308:3306-eMYSQL_ROOT_PASSWORD=密码mysql3、在主机修改mysql配置[mysqld]......
  • MySQL的执行计划详解(Explain)(整合版)
    目录MySQL的执行计划详解(Explain)(整合版)1、MySQL执行计划的定义2、Explain分析示例3、语法展示4、explain中的列4.1、id4.2、select_type4.3、table4.4、type(重要的)4.5、possible_keys4.6、key4.7、key_len4.8、ref4.9、rows4.10、fitered4.11、ExtraMySQL的执行计划详解(Expla......
  • MySQL-主从复制
    目录概述原理搭建概述主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步MySQL支持一台主库同时向多台从库进行复制,从库同时也可以作为其他从服务器的主库,实现链状复制MySQ......
  • Mysql--权限与安全管理
    前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除一、权限表MySQL服务器通过权限表来控制用户对数据库的访问,权限表存放在MySQL数据库中,由MySQL_install_db脚本初始化。存储账户权限信息的表主要有user、db、host、tables_priv、columns_priv和proc......
  • 如何增强LangChain和FAISS多查询检索的相关性
    我正在为一个专注于冥想和灵性的项目开发一个使用LangChain和FAISS的多查询检索系统。我当前的设置涉及生成用户查询的变体以改进文档检索。但是,我遇到一个问题,即检索到的文档通常与查询主题无关。对于嵌入,我使用“经济嵌入文本”模型。我已将335本PDF书籍嵌入到......