本文主要是介绍关于锁的粒度问题——面试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
锁的粒度划分主要有三种:表级锁、页级锁和行锁
1.表级锁:
对整张表加锁,粒度最大,加锁的并发度最低,会导致其他事务无法访问该表,只有当前事务提交或者回滚后才能释放锁。表级锁适用于对表进行全表操作的场景,如表的重建、初始化等。
mysql5.5之前默认使用MYISAM引擎
2.页级锁:
对数据表中的一页加锁,粒度介于表级锁和行锁之间,可以提高并发度,但是会导致锁冲突的概率增加。页级锁适用于对表中大部分数据进行操作的场景。
3.行锁:
对数据表中的一行加锁,粒度最小,加锁的并发度最高,可以最大程度地支持并发操作。行锁适用于对表中少量数据进行操作的场景。
mysql5.5之前默认使用InnoDB引擎
4.注意:
需要注意的是,锁的粒度越小,并发度越高,但是锁的开销也越大,因此需要根据具体场景选择合适的锁粒度
这篇关于关于锁的粒度问题——面试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!