一、锁机制分为悲观锁和乐观锁
理解:
- 悲观锁:对数据保持一种比较悲观的想法,数据肯定会出现冲突(多个线程操作一条数据),在处理数据时,将数据锁住,防止其他操作。
- 乐观锁: 与悲观锁持相反的态度,一般认为数据不会冲突,一般是在数据进行提交更新的时候才进行判断是否允许修改。
二、具体实现方式
实现:
悲观锁:
select * from user where name= 'tony' for update
乐观锁:
- 在表中增加一个Version字段或者一个标识字段。
- 在更新之前先获取当前Version或者标识字段数据。
- 在更新数据时,where条件增加Version字段或者标识字段的值进行更新,相同则更新成功。
- 如果更新失败,则返回给客户端更新失败·····
总结:
具体使用悲观锁还是乐观锁,要根据当前的场景进行选择,如果不允许出现脏读的情况下,并且并发量不大的情况下,可以使用悲观锁(悲观锁会有性能问题)。如果并发量高的情况下,建议选择乐观锁。
标签:数据库,更新,乐观,字段,Version,悲观,数据 来源: https://www.cnblogs.com/tonyzt/p/15739771.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。