mysql 锁机制

1. 基本概念

     锁机制是在处理高并发的情况下,保证数据的完整性、一致性, INNODB 锁的粒度是行级锁,具体的锁各种数据库各种引擎可能采用各自不同的方式,不必拘泥于具体的某种方式, 用到什么数据库 了解就行了。

 2. 锁的类型 

共享锁(S):兼容S锁, 允许读 

排他锁(X):允许一个事务更新或者删除 

3. 数据的一致性 

3.0隔离级别 

Serializable (串行化):可避免脏读、不可重复读、幻读的发生。 

read Repeatable (可重复读):可避免脏读、不可重复读的发生。

Read committed (读已提交):可避免脏读的发生。

Read uncommitted (读未提交):最低级别,任何情况都无法保证。 

3.1 一致性非所定读

       INNODB 采用MVCC的方式来读取当前执行时间数据库中数据行的数据,如果的读取的行正在执行delete或update操作,这样不会等待锁的释放, 相反的,INNODB会读取数据行的快照, 在事务的隔离级别为READ COMMITTED 和 REPEATABLE READ 下, Innodb采用非锁定一致性读。在不同的隔离级别下, 读取快照的的方式可不同, 在提交读中,读取最新的快照,在 重复读的级别下, 对于快照总是读取事务开始时的版本。 

3.2 一致性锁定读 

 在用户显示的指定读操作是锁定时: select ... from table_name for UPDATE; select ... from table_name lock in share mode; 3.3 自增长锁 

3.3 锁粒度

行级锁(record lock)

间隙锁(gap lock)

后健锁(next-key lock = record lock + gap lock)



转载于:https://juejin.im/post/5b964ccb6fb9a05d34479fb3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值