一、全局锁(锁数据库)
会阻塞整个数据库的所有操作,只允许一个用户对数据库进行写操作,其他用户无法对数据库进行读写操作。经常用于对整个数据库进行备份或恢复等操作。
二、表级锁(锁表)
针对特定表的锁定机制。当一个事务正在修改某个表的时候,其他事务无法同时修改该表,但可以读取该表;表级锁包括两种类型共享锁和排它锁
共享锁:允许多个事务同时读取同一张表,但不允许对该表进行写操作
排它锁:只允许一个事务修改该表,其他事务既不能读取该表,也不能修改该表
表级锁优点对于控制并发访问非常有效,缺点是如果多个事务需要同时修改同一行数据,就会出现死锁的情况。
三、行级锁(锁一行数据)
是最细粒度的锁定机制,只锁定表中的某一行数据,而不是整个表或整个数据库。行级锁允许多个事务同时修改同一张表,但是只有在修改同一行数据时,才会阻塞其他事务的操作。
行级锁能够有效地提高并发性和可用性,并减少死锁的情况,但是也会增加额外的开销和复杂性。因此,在使用行级锁时需要谨慎考虑其影响,避免出现意想不到的问题。
总之,全局锁就是锁数据库的,用来备份和恢复数据库数据的;表级锁是锁整张表,只能读表不能改表;行级锁是锁一行数据的,可以提高并发性和可用性,减少死锁情况,行级锁只有多个事务修改同一行数据才会阻塞。锁的粒度越低,并发性和可用性越好。