赞
踩
以 mysql 中 innodb 存储引擎为例。总体来说 innodb 共有七种类型的锁:
自增锁:表级别,专门针对事务插入自增id的列,如果插入位置冲突,多个事务会阻塞,以保证一致性。
共享/排他锁:行级锁,也是一个强锁。
意向锁:表级别,弱锁,仅仅表明意向。
插入意向锁:针对inser的,如果插入位置不冲突,多个事务不会阻塞,以提高插入并发。
记录锁:索引记录上加锁,对索引记录实施互斥,以保证数据一致性。
间隙锁:封锁索引记录中间的间隙,在RR下有效。防止间隔中被其他事务插入。
林键锁:封锁索引记录,以及索引记录中间额间隙,在RR下有效,防止幻读。
mysql 中一共有四中隔离级别:
读未提交
在该隔离级别中,所有事务都可以看到其他未提交事务的执行结果。
该隔离级别会出现的问题是:脏读,即读取到了未提交的数据。
读取提交
一个事务只能看见已经提交事务所做的改变。
该隔离级别会出现的问题是:不可重复读,即不可重复读意味着我们在同一个事务中执行完全相同的select语句时可能看到不一样的结果。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。