首页 > 数据库技术 > 详细

mysql-行锁

时间:2020-10-29 22:03:53      阅读:36      评论:0      收藏:0      [点我收藏+]
show status like ‘innodb_row_lock%‘;

对各个状态量的说明如下

Innodb_row_lock_current_waits:当前正在等待锁定的数量;

Innodb_row_lock_time:从系统启动到现在锁定总时间长度;

Innodb_row_lock_time_avg:每次等待锁花费平均时间;

Innodb_row_lock_time_max:从系统启动到现在等待最长的一次说话的时间;

Innodb_row_lock_waits :启动系统后到现在总共等待的次数;

对于5个状态变量,比较重要的是

Innodb_row_lock_time_avg(等待锁的平均时长)

Innodb_row_lock_waits (等待总次数)

Innodb_row_lock_time(等待总时长)

尤其是当等待次数越高,而且每次等待时长也不小的时候,我们就需要分析系统中为什么会有如此多的等待,然后根据分析结果着手制定优化计划。

优化建议

  • 尽可能在所有数据检索都通过索引来完成,避免无索引行锁升级为表锁
  • 合理设计索引,尽量缩小锁的范围
  • 尽可能较少检索条件,避免间隙锁
  • 尽量控制事务大小,减少锁定资源量和时间长度
  • 尽可能低级别事务隔离

mysql-行锁

原文:https://www.cnblogs.com/lhh-boke/p/13898740.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!