- 查看正在进行中的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;
- 杀死进程id(就是上面命令查到的trx_mysql_thread_id列)
kill 线程id
- 查看当前锁定的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
- 查看当前等锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
- 查看超过60s的长事务
select * from information_schema.innodb_trx where TIME_TO_SEC(timediff(now(),trx_started))>60
监控长事务
- 监控 information_schema.Innodb_trx 表,设置长事务阈值,超过就报警 / 或者 kill;
- Percona 的 pt-kill 这个工具不错,推荐使用;
mysql释放空间需要删除索引重建索引
alter table T engine=InnoDB;
mysql最大连接数max_connections
mysql建立连接很多时间耗在权限校验(登录权限、读写权限),如果max_connections设置的过大,可能会影响已经存在的连接处理业务请求的速度