程序员过关斩将——数据库的乐观锁和悲观锁并非真实的锁( 七 )

2. 表级锁是数据库中锁定粒度最大的一种锁 , 表示对当前操作的整张表加锁 , 它实现简单 , 资源消耗较少 。 特点:开销小 , 加锁快;不会出现死锁;锁定粒度大 , 发出锁冲突的概率最高 , 并发度最低 。

3. 页级锁是数据库中锁定粒度介于行级锁和表级锁中间的一种锁 。 表级锁速度快 , 但冲突多 , 行级冲突少 , 但速度慢 。 所以取了折衷的页级 , 一次锁定相邻的一组记录 。 特点:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间 , 并发度一般

不同数据库支持的锁力度不同 , 甚至同一种数据库不同的引擎支持的锁力度都不同 , 如下表所示(来源于网络)

这里要强调一点 , 无论什么数据库对数据加锁 , 都需要资源的消耗 , 因此锁的数量其实是有上限的 , 当锁数量到达这个上限会自动进行锁力度的升级 , 用更大力度的锁来代替多个小力度的锁 。

乐观锁和悲观锁

推荐阅读