行级锁
行级锁只针对当前操作的行进行加锁,能大大减少数据库操作的冲突。特点是开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。
表级锁
表级锁对当前操作的整张表加锁,它实现简单,资源消耗较少,被大部分MySQL引擎支持。最常使用的MYISAM与INNODB都支持表级锁定。特点是开销小,加锁快;不会出现死锁;锁定粒度大,发出锁冲突的概率最高,并发度最低。
乐观锁
乐观锁是相对悲观锁而言的,乐观锁假定数据平常情况下不会形成争执,所以在数据提交更新的时刻,才会正式对数据的争执与否进行检测,假如发明争执了,则返回给用户错误信息,让用户决定怎样去做。
悲观锁
悲观锁指的是对数据被外界(包含本体系当前的其他事件,以及来自外部体系的事件)修正持保守立场。因而,在全部数据处置过程当中,将数据置于锁定状况。这是一种对数据的修正抱有消极立场的并发掌握体式格局。我们平常以为数据被并发修正的几率比较大,所以需要在修正之前先加锁。