MySQL数据库挂掉排查_[数据库]MySQL死锁排查

[数据库]MySQL死锁排查

0 2020-08-28 18:00:40

死锁查询方式:

1)查看当前事务中是否有锁信息:

select trx_id,trx_state,trx_started,trx_requested_lock_id,trx_weight from innodb_trx;

2)查看锁信息(表锁or行锁,锁的那张表)

select lock_id,lock_trx_id,lock_mode,lock_type,lock_table,lock_index from innodb_locks;

3)查看锁在等待那些事务

select * from innodb_lock_waits;

如何避免死锁发生

1、减小事务的大小,尽量分割。

2、mysql 默认隔离级别是 可重复读,会产生间隙锁,增加死锁的概率,对应解决方法,修改为 提交读级别,此时binlog日志格式必须设置为 ROW 避免产生主从数据不一致。

3、查看具体产生死锁的sql,优化sql 避免产生全表扫描,该加索引加索引。

本文网址:http://www.shaoqun.com/a/468817.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:[email protected]

MYSQL

0

你可能感兴趣的:(MySQL数据库挂掉排查)