摘要:锁的隔离级别事务隔离级别脏读不可重复读幻读读未提交是是是读已提交否是是可重复读否否是串行化否否否锁的分类粒度划分行锁表锁页面锁级别划分读锁,锁写锁,简称锁意向读锁事务打算给数据行加行共享锁,事务在给一个数据行加共享锁前必须先取得该表
锁的隔离级别
事务隔离级别 | 脏读 | 不可重复读 | 幻读 |
---|---|---|---|
读未提交(read-uncommitted) | 是 | 是 | 是 |
读已提交(read-committed) | 否 | 是 | 是 |
可重复读(repeatable-read) | 否 | 否 | 是 |
串行化(serializable)) | 否 | 否 | 否 |
行锁:Record Lock、Gap Lock、Next-Key Lock
表锁
页面锁
级别划分读锁(Share Locks,S锁)
写锁(Exclusive Locks,简称X锁)
意向读锁(IS):事务打算给数据行加行共享锁,事务在给一个数据行加共享锁前必须先取得该表的IS锁
意向写锁(IX):事务打算给数据行加行排他锁,事务在给一个数据行加排他锁前必须先取得该表的IX锁
是否兼容 | X | IX | S | IS |
---|---|---|---|---|
X | 冲突 | 冲突 | 冲突 | 冲突 |
IX | 冲突 | 兼容 | 冲突 | 兼容 |
S | 冲突 | 冲突 | 兼容 | 兼容 |
IS | 冲突 | 兼容 | 兼容 | 兼容 |
加锁的基本单位是 next-key lock,锁是加在索引上的
查找过程中,访问到的对象才会加锁
索引上的等值查询,给唯一索引加锁的时候,next-key lock退化为行锁
索引上的等值查询,向右遍历时且最后一个值不满足等值条件的时候,next-key lock退化为间隙锁
唯一索引上的范围查询会访问到不满足条件的第一个值为止。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/17921.html
摘要:所以我们如果使用系统表空间进行表数据的存储,所面临的问题是无法很容易的收缩系统文件,造成大量的空间浪费,并且会产生大量的磁盘碎片,从而降低了系统性能。 1. mysql 5.5及之后版本默认存储引擎 为不了解存储引擎的数据库使用者,提供了很大的便利,因为innodb适应大部分应用场景。 和myisam不同的是,innodb是一种事务型存储引擎。也就是说,innodb是支持事务的...
阅读 3121·2021-11-23 09:51
阅读 639·2021-10-14 09:43
阅读 3137·2021-09-06 15:00
阅读 2376·2019-08-30 15:54
阅读 2528·2019-08-30 13:58
阅读 1782·2019-08-29 13:18
阅读 1329·2019-08-27 10:58
阅读 461·2019-08-27 10:53