mysql 锁使用情况

1、表锁

  • table_locks_immediate : 表立即获取表锁的次数
  • table_locks_waited:等待获取表锁的次数(即不能立即获取表锁的次数)

 

例子

假如test_db 有四张表则下面的执行语句的上面的 table_locks_immediate 的值会加4

mysqldump -uroot -proot  test_db --lock-tables --flush-logs > ../backup/test_db.sql

2、从information_schema库查询锁

  • innodb_t

  • innodb_locks

  • innodb_lock_waits

 

transaction1: select * from obj_order where id = 3 for update;
transaction2: select * from obj_order where id = 3 for update;
SELECT  trx_id,trx_state,trx_started,trx_requested_lock_id,trx_wait_started,trx_weight,trx_mysql_thread_id,trx_query FROM information_schema.INNODB_TRX;

elect * from information_schema.INNODB_LOCKS;

select * from information_schema.INNODB_LOCK_WAITS;

 


 1) innodb_trx表结构说明 (摘取最能说明问题的8个字段)

字段名说明
trx_idinnodb存储引擎内部唯一的事物ID
trx_state当前事物状态(running和lock wait两种状态)
trx_started  事物的开始时间
trx_requested_lock_id等待事物的锁ID,如trx_state的状态为Lock wait,那么该值带表当前事物等待之前事物占用资源的ID,若trx_state不是Lock wait 则该值为NULL
trx_wait_started事物等待的开始时间
trx_weight事物的权重,在innodb存储引擎中,当发生死锁需要回滚的时,innodb存储引擎会选择该值最小的进行回滚
trx_mysql_thread_idmysql中的线程id, 即show  processlist显示的结果
trx_query 事物运行的SQL语句
trx_tables_locked是否是表锁。1:是,, 0:否
trx_isolation_level事务隔离级别。


 2)innodb_locks表结构说明

字段名说明
lock_id 锁的ID
lock_trx_id事物的ID
lock_mode锁的模式(S锁与X锁两种模式)
lock_type锁的类型 表锁还是行锁(RECORD)
lock_table要加锁的表
lock_index锁住的索引
lock_space锁住对象的space id
lock_page 事物锁定页的数量,若是表锁则该值为NULL
lock_rec事物锁定行的数量,若是表锁则该值为NULL
lock_data事物锁定记录主键值,若是表锁则该值为NULL(此选项不可信)


 3)innodb_lock_waits表结构说明

字段名说明
requesting_trx_id申请锁资源的事物ID
requested_lock_id申请的锁的ID
blocking_trx_id阻塞其他事物的事物ID
blocking_lock_id阻塞其他锁的锁ID

常见问题

1、Lock wait timeout exceeded; try restarting transaction

select * from information_schema.INNODB_TRX;
kill trx_mysql_thread_id;  -- trx_mysql_thread_id 是查出来的值

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

廖钺焕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值