微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mysql中乐观锁和悲观锁有什么区别

MysqL中乐观锁和悲观锁的区别有:1.概念不同;2.使用场景不同;3.实现方式不同;4.特点不同;

mysql中乐观锁和悲观锁有什么区别

MysqL中乐观锁和悲观锁的区别有以下几点

1.概念不同

MysqL中乐观锁是对加锁持有一种乐观的态度,可以先进行业务操作,不到最后一步不进行加锁,且乐观锁认为加锁一定会成功;而悲观锁是对数据加锁持有一种悲观的态度,在数据处理过程中,数据是一直数据处于锁定状态,且悲观锁需要数据库提供锁机制。

2.使用场景不同

MysqL中乐观锁适用于读取操作频繁的场景,当进行频繁的写入操作时,为了保证数据的一致性,应用层需要不断的重新获取数据,会增加数据库查询操作,从而降低系统的吞吐量;而悲观锁适用于写入操作频繁的场景,当进行频繁的读取操作时,每次读取操作都会对数据进行加锁,会增加锁的开销,从而降低系统的吞吐量。

3.实现方式不同

MysqL中乐观锁是通过version方式实现的,是在数据表中加上一个数据版本号version字段,表示数据被修改次数,当数据被修改时,version值会加一;而悲观锁是由数据库本身实现的,可以直接调用数据库的相关语句实现悲观锁。

4.特点不同

MysqL中乐观锁的特点是先进行业务操作,不到万不得已不会进行加锁操作,且乐观锁认为加锁一定会成功,只需要在完成业务操作后加锁即可;而悲观锁的特点是先获取锁,再进行业务操作,因为悲观锁认为获取锁失败的可能性很大,它需要先确保获取锁成功后再进行业务操作。



版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐