所谓粒度,即细化的程度。锁的粒度越大,则并发性越低且开销大;锁的粒度越小,则并发性高且开销小。
锁的粒度主要有下面几种类型:
(1)行锁,行锁是粒度中最小的资源。行锁就是指事务在操作数据的过程中,锁定一行或多行的数据,其它事务不能同一时候处理这些行的数据。行级锁占用的数据资源最小,所以在事务的处理过程中,同意其它事务操作同一表的其它数据。
(2)页锁,一次锁定一页。25个行锁可升级为一个页锁。
(3)表锁,锁定整个表。当整个数据表被锁定后,其它事务就不可以使用此表中的其它数据。使用表锁可以使事务处理的数据量大,而且使用较少的系统资源。可是在使用表锁时,会延迟其它事务的等待时间,减少系统并发性。
(4)数据库锁,防止不论什么事务和用户对此数据库进行訪问。可控制整个数据库的操作。
用锁效率会降低,可通过使用表锁来降低锁的使用从而保证效率。