数据库并发控制一般采用三种方法,分别是乐观锁、悲观锁和时间戳。
一、乐观锁:
乐观锁是一种乐观思想,认为读多写少,也就是认为遇到并发写的可能性低,用户在读数据的时候别人不会写自己所读的数据 ,所以不会上锁。但是 在更新的时候会判断一下在此期间别人有没有去更新这个数 据,采取在写时先读出当前版本号,然后加锁操作。
二、悲观锁:
悲观锁就是悲观思想,认为写多读少,也就是认为遇到并发写的可能性高,觉得自己读数据库的时候别人可能刚好在写自己刚读的数据
,所以每次在读写数据的时候都会上锁,只有自己把数据读完了,才允许别人修改那部分数据。
三、时间戳:
时间戳就是在数据库表中单独加一列时间戳,比如“TimeStamp”,
每次读出来的时候,把该字
段也读出来,当写回去的时候,把该字段加1,提交之前 ,跟数据库的该字段比较一次,如果比数
据库的值大的话,就允许保存,否则不允许保存
,这种处理方法虽然不使用数据库系统提供的锁
机制,但是这种方法可以大大提高数据库处理的并发量。
以上所说的加“锁”,其实分为几种锁,分别是: 共享锁(读锁)和排它锁(写锁),也叫独占锁 。
本文介绍了数据库并发控制的三种主要方法:乐观锁、悲观锁和时间戳。乐观锁适用于读多写少的情况,通过版本号机制避免冲突;悲观锁则认为并发写可能性较高,在读写时直接上锁;时间戳方法通过增加时间戳字段来提高并发处理能力。
1775

被折叠的 条评论
为什么被折叠?



