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

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

若是你更改的是两条记录,就在两条记录上加锁,若是你更改的是不少条,这个时候数据库一看一条一条加锁太麻烦,给整个页加锁更省事,或者给整个表加锁更加省事并发

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

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

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

刚开始就这几个锁blog

 

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

 

 

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

因此以下图查询学号为0000000001的学生,由于这行数据加了独占锁,因此一直查询不出来d3

 

可是以下图查询学号不为0000000001的学生,就能够查询出来数据了,由于其余行并无锁数据

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

 

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

 以下图查询学号不为0000000001的学生或者查询任何数据,由于这个表加了独占锁,因此都不会查询出来

相关文章
相关标签/搜索