bug_x

导航

 

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

 存储过程造数据

 

 

 

 

posted on 2024-08-04 11:21  bug_x  阅读(26)  评论(0编辑  收藏  举报