数据库
来源:互联网 发布:首次适应算法java 编辑:程序博客网 时间:2024/06/03 18:47
隔离是属于ACID中的一个,逻辑单元必须具备这四个属性才能称为事务。
隔离级别定义了事务与事务之间的隔离程度。
隔离级别与并发性是互相矛盾的:隔离程度越高,数据库的并发性越差;隔离程度越低,数据库的并发性越好。
隔离级别:
- 未提交读(read uncommitted): 当事务A更新某条数据时,不容许其他事务来更新该数据,但可以读取。
- 提交读(read committed): 当事务A更新某条数据时,不容许其他事务进行任何操作包括读取,但事务A读取时,其他事务可以进行读取、更新
- 重复读(repeatable read): 当事务A更新数据时,不容许其他事务进行任何操作,但当事务A进行读取时,其他事务只能读取,不能更新。
序列化(serializable): 最严格的隔离级别,事务必须依次进行。
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。
乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。乐观锁适用于多读的应用类型,这样可以提高吞吐量,像数据库如果提供类似于write_condition机制的其实都是提供的乐观锁。
阅读全文
0 0
- 数据库
- 数据库
- 数据库
- 数据库
- 数据库
- 数据库
- 数据库
- 数据库
- 数据库
- 数据库
- 数据库
- 数据库
- 数据库
- 数据库
- 数据库
- 数据库
- 数据库
- 数据库
- IntelliJ IDEA使用笔记
- LWC 53:695. Max Area of Island
- 浅论Maven和Git的原理及展示其与Eclipse的集成
- 全局异常捕获器_多博客摘抄~
- Codeforces Round #439 (Div. 2) B. The Eternal Immortality
- 数据库
- bzoj 1036 洛谷 p2590 [ZJOI2008]树的统计
- 10.8 蜡烛 2403
- 《剑指offer》刷题笔记(代码完整性):数值的整数次方
- javaWeb企业级了解
- C++ const
- 1001. 害死人不偿命的(3n+1)猜想
- HTTP
- 电子工程师必备九大系统电路