死锁查询方式:
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 避免产生全表扫描,该加索引加索引。
MySQL死锁排查物流入门、 达方物流、 Google东莞体验中心精品课程、 不知道亚马逊这些,难怪你的店铺排名低!、 全额缴税也可能被关店?法国站VAT6月30日封号概率有多高?、 Wish全明星商户标志、 国际站如何做好海外营销?看义乌商家出海新方向!、 7大免费高清图片库,您还在担心产品选不到好的配图吗?、
没有评论:
发表评论