码迷,mamicode.com
首页 > 数据库 > 详细

《深入浅出Mysql》—— 第二十章 锁问题

时间:2020-01-26 17:45:57      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:读锁   avg   其他   java   深入浅出   需要   数据库管理   观察   mysq   

技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

在如表 20-3 所示的例子中,一个 session 使用 LOCK TABLE 命令给表 film_text 加了读锁,这 个 session 可以查询锁定表中的记录,但更新或访问其他表都会提示错误;同时,另外一个 session 可以查询表中的记录,但更新就会出现锁等待。 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 当使用 LOCK TABLES 时,不仅需要一次锁定用到的所有表,而且,同一个表在 SQL 语句 中出现多少次,就要通过与 SQL 语句中相同的别名锁定多少次,否则也会出错!

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 银行转帐就是事务的一个典型例子。 

技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 技术图片

 

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 技术图片

应该由JAVA 代码来解决这种情况

技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 产生并发不一致性问题主要原因是破坏了事务的隔离性,解决方法是通过并发控制来保证隔离性。并发控制可以通过封锁来实现,但是封锁操作需要用户自己控制,相当复杂。数据库管理系统提供了事务的隔离级别,让用户以一种更轻松的方式处理并发一致性问题。

 技术图片

 

 技术图片

 技术图片

 

 

 技术图片

 

 可以通过检查 InnoDB_row_lock 状态变量来分析系统上的行锁的争夺情况: 

技术图片

 

 如果发现锁争用比较严重,如 InnoDB_row_lock_waits和 InnoDB_row_lock_time_avg 的值 比较高,还可以通过设置 InnoDB Monitors 来进一步观察发生锁冲突的表、数据行等,并分 析锁争用的原因

 技术图片

 

 

 技术图片

 

技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 


 

技术图片

 

 

技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 技术图片

 

        技术图片

 

 技术图片

 

 技术图片

 

 技术图片

《深入浅出Mysql》—— 第二十章 锁问题

标签:读锁   avg   其他   java   深入浅出   需要   数据库管理   观察   mysq   

原文地址:https://www.cnblogs.com/JasonPeng1/p/12234430.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!