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
# 直接分析慢查询文件:
pt-query-digest /var/logs/mysql/slow.log > /var/logs/mysql/slow_report.log
#分析最近12小时内的查询:
pt-query-digest --since=12h /var/logs/mysql/slow.log > /var/logs/mysql/slow_report2.log
#分析指定时间范围内的查询:
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
#分析只含有select语句的慢查询
pt-query-digest --filter '$event->{fingerprint} =~ m/^select/i' /var/logs/mysql/slow.log > /var/logs/mysql/slow_report4.log
#针对某个用户的慢查询
pt-query-digest --filter '($event->{user} || "") =~ m/^root/i' /var/logs/mysql/slow.log > /var/logs/mysql/slow_report5.log
# 查询所有所有的全表扫描或full join的慢查询
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
#把查询保存到test数据库的query_review表,如果没有的话会自动创建;
pt-query-digest --user=root –password=abc123 --review h=localhost,D=test,t=query_review --create-review-table /var/logs/mysql/slow.log
#把查询保存到query_history表
pt-query-digest --user=root –password=abc123 --review h=localhost,D=test,t=query_ history --create-review-table /var/logs/mysql/slow.log_20140401
#通过tcpdump抓取mysql的tcp协议数据,然后再分析
tcpdump -s 65535 -x -nn -q -tttt -i any -c 1000 port 3306 > mysql.tcp.txt
pt-query-digest --type tcpdump mysql.tcp.txt> /var/logs/mysql/slow_report9.log
#分析binlog
mysqlbinlog mysql-bin.000093 > mysql-bin000093.sql
pt-query-digest --type=binlog mysql-bin000093.sql > /var/logs/mysql/slow_report10.log
#分析general log
pt-query-digest --type=genlog localhost.log > /var/logs/mysql/slow_report11.log
存储过程造数据