赞
踩
原文网址:MySQL--行级锁与表级锁_IT利刃出鞘的博客-CSDN博客
说明
本文介绍MySQL的行级锁与表级锁。
锁的类型
锁类型 | 死锁 | 锁定粒度(并发性) | 适用场景 |
表级锁 | 不会死锁 | 最大,发生锁冲突的概率最大(并发性低) | 场景1:读多写少; 场景2:写特别多。若用行锁,会导致事务执行效率低,可能造成其他事务长时间锁等待和锁冲突。 |
行级锁 | 会死锁 | 最小,发生锁冲突的概率最低(并发性最高) | 并发量大。 |
页面锁 | 会死锁 | 居中,并发一般 |
不同的存储引擎的锁机制
存储引擎 | 支持的锁 | 说明 |
InnoDB | 表级锁、行级锁(默认)。 | InnoDB行级锁基于索引实现。若查询字段无索引或索引失效,则使用表锁。 |
MyISAM | 表级锁 | |
MEMORY | 表级锁 | |
BDB | 表级锁、页面锁 |
说明
行锁只在InnoDB中。有两种锁:共享锁(Share Lock)(也称为:读锁)、独占锁(Exclusive Lock)。共享锁也称为:读锁;独占锁也称为:写锁。
InnoDB实现了以下两种类型的行锁。意向锁是InnoDB自动加的,不需用户干预。
上述锁模式的兼容情况具体如下表所示。如果一个事务请求的锁模式与当前的锁兼容,InnoDB就将请求的锁授予该事务;反之,如果两者不兼容,该事务就要等待锁释放。
上边只是部分内容,为便于维护,本文已迁移到此地址:MySQL-行级锁与表级锁 - 自学精灵
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。