数据库锁机制

来源:互联网 发布:2016淘宝网店装修教程 编辑:程序博客网 时间:2024/06/15 11:21

数据库为了保证数据操作的排他性在数据操作的过程中添加了一些操作机制,保证了数据在访问过程中不会被其他程序修改,这就是数据库的锁机制。


锁机制分两种情况:悲观锁和乐观锁两种锁机制

悲观锁,顾名思义悲观的认为在数据处理过程中极有可能存在修改数据的并发事务(包括本系统的其他事务或来自外部系统的事务),

于是将处理的数据设置为锁定状态。悲观锁必须依赖数据库本身的锁机制才能真正保证数据访问的排他性。

乐观锁,顾名思义,对并发事务持乐观态度(认为对数据的并发操作不会经常性的发生),通过更加宽松的锁机制来解决由于悲观锁排他性的

数据访问对系统性能造成的严重影响。

最常见的乐观锁是通过数据版本标识来实现的,读取数据时获得数据的版本号,更新数据时将此版本号加1,然后和数据库表对应记录的当前版本号进行比较,

如果提交的数据版本号大于数据库中此记录的当前版本号则更新数据,否则认为是过期数据无法更新。

乐观锁会增加了一个版本字段,很明显这需要额外的空间来存储这个版本字段,浪费了空间,但是乐观锁会让系统具有更好的并发性,这是对时间的节省。

因此乐观锁也是典型的空间换时间的策略。

原创粉丝点击