mysql:锁
锁机制用于管理对共享资源的并发访问。
行级锁
行级锁只在存储引擎层实现,在服务器层没有实现。
https://www.cnblogs.com/chenqionghe/p/4845693.html
https://www.cnblogs.com/luyucheng/p/6297752.html
http://www.hollischuang.com/archives/898
mysql乐观锁、悲观锁
https://www.cnblogs.com/xiohao/p/4385508.html
https://baijiahao.baidu.com/s?id=1608266669480780701&wfr=spider&for=pc
latch门闩,因为其要求锁定的时间必须非常短。若持续的时间长,则应用的性能会非常差。在InnoDB存储引擎中,latch又可以分为mutex(互斥量)和rwlock(读写锁)。其目的是用来保证并发线程操作临界资源的正确性,并且通常没有死锁检测的机制。
lock的对象是事务,用来锁定的是数据库中的对象,如表、页、行。并且一般lock的对象仅在事务commt或rollback后进行释放(不同事务隔离级别释放的时间可能不同)。此外,lock,正如在大多数数据库中一样,是有死锁机制的。
死锁
死锁是指两个或两个以上的事务在执行过程中,因争夺锁资源而造成的一种互相等待的现象。
锁升级
锁升级是指将当前锁的粒度降低。比如,数据库可以把一个表的1000个行锁升级为一个页锁,或者将页锁升级为表负。如果在数据库的设计中认为锁是一种稀有资源,而且想避免锁的开销,那数据库中会频繁出现锁升级现象。