mysql中乐观锁和悲观锁有什么区别
mysql中乐观锁和悲观锁的区别有:1.概念不同;2.使用场景不同;3.实现方式不同;4.特点不同;
mysql中乐观锁和悲观锁的区别有以下几点
1.概念不同
mysql中乐观锁是对加锁持有一种乐观的态度,可以先进行业务操作,不到最后一步不进行加锁,且乐观锁认为加锁一定会成功;而悲观锁是对数据加锁持有一种悲观的态度,在数据处理过程中,数据是一直数据处于锁定状态,且悲观锁需要数据库提供锁机制。
2.使用场景不同
mysql中乐观锁适用于读取操作频繁的场景,当进行频繁的写入操作时,为了保证数据的一致性,应用层需要不断的重新获取数据,会增加数据库的查询操作,从而降低系统的吞吐量;而悲观锁适用于写入操作频繁的场景,当进行频繁的读取操作时,每次读取操作都会对数据进行加锁,会增加锁的开销,从而降低系统的吞吐量。
3.实现方式不同
mysql中乐观锁是通过version方式实现的,是在数据表中加上一个数据版本号version字段,表示数据被修改的次数,当数据被修改时,version值会加一;而悲观锁是由数据库本身实现的,可以直接调用数据库的相关语句实现悲观锁。
4.特点不同
mysql中乐观锁的特点是先进行业务操作,不到万不得已不会进行加锁操作,且乐观锁认为加锁一定会成功,只需要在完成业务操作后加锁即可;而悲观锁的特点是先获取锁,再进行业务操作,因为悲观锁认为获取锁失败的可能性很大,它需要先确保获取锁成功后再进行业务操作。
声明:本站所有作品(图文、音视频)均由用户自行上传分享,或互联网相关知识整合,仅供网友学习交流,若您的权利被侵害,请联系 管理员 删除。
本文链接:http://news.ew35.com/