并发控制
并发控制的任务是确保当多个事务同时修改数据库中同一个数据时,不破坏事务的隔离性和一致性。解决并发的一种方式就是加锁。
锁
当并发事务同时访问一个资源时,有可能导致数据不一致,因此需要一种机制来将数据访问顺序化,以保证数据库数据的一致性。锁就是其中的一种机制。
1.锁按级别分为:表锁、行级锁、页锁
三种锁的特性:
表锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁的冲突概率最大,并发性低。
行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁的冲突概率最小,并发性也最高。
页锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。
2.读写锁
共享锁也叫读锁,排它锁也叫写锁。
读锁:读锁是共享的,互不阻塞的,多个客户可以同时读取同一数据。
写锁:写锁是拍他的,一个写锁会阻塞其他的写锁和读锁。