索引
为啥会有这两种锁呢?我们先说一个背景,在数据库查询的时候,很多时候会涉及到并发的修改或者是查询,当这些查询互相冲突的时候会如何处理呢,当然就是对这些数据加以权限上的限制,我们把这称为锁,而解决这种指令冲突情况而加的锁被分为两大类,一种也就是乐观锁,另外一种就是悲观锁
概述
乐观锁悲观锁是非常直观的名称,在处理并发的查询或者修改这一问题上分别体现了悲观与乐观的态度
悲观锁
悲观锁拥有强烈地独占性与排他性,具体的表现为在多个事务访问数据的时候,悲观地认为这些事务全部都会对数据进行写操作,所以在一个事务对一个数据进行读写的时候为数据加锁,之后任何申请读写该数据的事务都会被阻塞并挂起,静静地等待当前事务完成对数据地读写,然后释放锁,重复上述进程
这里面加锁地时候有两种情形:写锁与共享锁
1.共享锁相对宽松,允许这个数据被加锁后,其余事务可以对该数据进行读的操作,
也就是规定该数据为仅读状态
2..写锁更加严格,就是仅同时允许一个事务对一个数据来进行读写
悲观锁优缺点
悲观锁非常好地