数据库隔离级别介绍
来源:互联网 发布:iphonex 壁纸编辑软件 编辑:程序博客网 时间:2024/05/16 12:43
事物(transaction)是数据库管理系统的执行单位,可以是一个数据库操作(如select操作) 或者是一组操作系列。事物的acid属性,即原子性(atomicty)、一致性(consistency)、隔离性(Isolation)、持久性(Durability)。
原子性 : 保证事物中的所有操作全部执行或者全部不执行,比如说执行一个事物,要么全部执行完成,要么回滚到执行之前,拿银行转账事物来说吧,要么转账成功,要么转账失败!!成功,两个金额账户发生变化,一个增加,一个减少,失败的话,两个账户金额保持不变,不会出现一个账户多了钱,一个账户少了钱!!!
一致性:保证数据库始终保持数据的一致性 -- 事物操作之前和事物操作之后是一致的。上面银行转账的例子就是,不管事物执行成功与否,两个账户之间的总金额在执行前后是一致的!!
隔离性: 多个事物并发执行的话结果应该与多个事物串行执行一样的。如果每个事物都串行执行的话,效率会非常的低,所有有些操作在保持数据安全一致的情况下可以冰法执行!!!!!比如说:两个不同的事物读取同一批数据,这样完全可以并发执行,为了控制并发执行的效果就有了不同的隔离级别!!
持久性:持久性表示事务执行完成之后,对数据库的影响是持久的,即使数据库因故障而受到破坏,对数据库也应该能够恢复!!!通常实现方式是采用日志。。
事物隔离级别(transaction ioslation levels): 隔离级别就是对事务并发控制的等级。ANSI / ISO SQL将其分为串行化(Serializable)、可重复读(REPEATABLE READ)、读已提交(READ COMMIT)、读未提交(READ UNCOMMITED)四个等级。为了实现隔离级别通常数据库采用锁(LOCK)。一般在编程的时候隔离级别,至于具体采用什么锁则由数据库来设置!!
串行化(Serializable):所有的事务都一个接一个的串行执行,这样可以避免幻读(phantomreads)。对于基于锁来实现并发控制的数据库来说,串行化要求在执行范围查询(如选取年龄在10 到 30之间的用户)的时候,需要获取范围锁(range lock)。如果不是基于锁实现并发控制数据库,则检测到有违反串行化操作的事务时,需要滚回该事物。
可重复读(REPEATBLE):所有被select获取的数据都不能被修改,这样可以避免一个事物前后读取出数据不一致的情况。
- 数据库隔离级别介绍
- 数据库的隔离级别介绍
- 数据库的隔离级别介绍
- 数据库的隔离级别介绍
- 数据库事务隔离级ORACLE数据库事务隔离级别介绍
- 数据库事务隔离级ORACLE数据库事务隔离级别介绍
- 关于数据库事务隔离级别的介绍
- MySQL数据库事务的隔离级别介绍
- 关于数据库事务隔离级别的介绍
- ORACLE数据库事务隔离级别介绍
- ORACLE数据库事务隔离级别介绍
- ORACLE/SQLSERVER数据库事务隔离级别介绍
- 事物隔离级别介绍
- MYSQL隔离级别介绍
- 数据库隔离级别。。。
- 数据库事务隔离级别
- 数据库隔离级别
- 数据库隔离级别
- 使用pymysql在python中对mysql的增删改查操作(四)
- 论docker中 CMD 与 ENTRYPOINT 的区别
- 让电脑前后面板音频插孔同时输出声音方法
- Android静态变量的生命周期 简单介绍
- Spring常用注解说明
- 数据库隔离级别介绍
- C++ placement new
- IP协议模型之一IP地址及子网
- sshfs远程文件系统挂载
- Unity3D 模型制作规范
- VC++编程中为程序加入启动画面功能
- 大学毕业一年多,对互联网创业的思考
- java.lang.IllegalStateException: getOutputStream() has already been called for this response
- Jquery中$.ajax $.post load用法与区别