事务和锁--查看数据库中的锁

Posted menglin2010

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了事务和锁--查看数据库中的锁相关的知识,希望对你有一定的参考价值。

数据库加锁是修改哪一条加锁,还是在页上加锁,还是在表上加锁,数据库来决定

如果你更改的是两条记录,就在两条记录上加锁,如果你更改的是很多条,这个时候数据库一看一条一条加锁太麻烦,给整个页加锁更省事,或者给整个表加锁更加省事

加锁的级别越大,数据库越省事,数据库越省事,并发性越差,修改一条记录如果给表加上独占锁,那么想查询别的记录都查询不了了

加锁的对象越小,并发性越好

加的锁对象越大,并发性越差

刚开始就这几个锁

 技术图片

1、开启事务修改学生的名字,给学号为0000000001的学生姓名加个‘_01’,事务不提交

技术图片

 

 技术图片

2、看到给Student表上的这1行加了独占锁
ObjId:2105058535表示是Student这张表
Type:RID表示是行标识
Resource:1:567:0,表示是第1个数据文件的第576页的第1行
Mode:X表示独占锁
技术图片

3、开启事务修改学生的名字,给学号对2取余等于0的这1批学生姓名加个_01,事务不提交

技术图片

 

4、看到给Student表加了独占锁
ObjId:2105058535表示是Student这张表
Type:TAB表示是表
Mode:X表示独占锁

技术图片

 

以上是关于事务和锁--查看数据库中的锁的主要内容,如果未能解决你的问题,请参考以下文章

事务和锁

一文详解-MySQL 事务和锁

实战篇:如何查看mysql里面的锁

mysql事务和锁

oracle 死锁和锁等待的区别,锁等待

锁-隔离级别的一些补充