事务隔离级别
来源:互联网 发布:adobe ae cc for mac 编辑:程序博客网 时间:2024/05/18 04:47
问题简称解决方法使用到的数据库锁隔离级别两个事务都同时更新一行数据,一个事务对数据的更新把另一个事务对数据的更新覆盖了。更新丢失如果一个事务已经开始写数据,则另外一个事务则不允许同时进行写操作,但允许其他事务读此行数据。排他写锁Read Uncommitted 未授权读取一个事务读取到了另一个事务未提交的数据操作结果。脏读读取数据的事务允许其他事务继续访问该行数据,但是未提交的写事务将会禁止其他事务访问该行。瞬间共享读锁,排他写锁Read Committed 授权读取事务T1读取某一行数据后,事务T2对其做了修改,当事务T1再次读该数据时得到与前一次不同的值。不可重复读读取数据的事务将会禁止写事务(但允许读事务),写事务则禁止任何其他事务。共享读锁,排他写锁Repeatable Read 可重复读取在两次查询过程中有另外一个事务插入或删除了一行数据,导致第二次查询的结果包含了第一次查询中未出现的数据或者缺少了第一次查询中出现的数据。幻读它要求事务序列化执行,事务只能一个接着一个地执行,但不能并发执行。仅仅通过“行级锁”是无法实现事务序列化的,必须通过其他机制保证新插入的数据不会被刚执行查询操作的事务访问到。Serializable 序列化
小结:
隔离级别越高,越能保证数据的完整性和一致性,但是对并发性能的影响也越大。对于多数应用程序,可以优先考虑把数据库系统的隔离级别设为Read Committed。它能够避免脏读取,而且具有较好的并发性能。尽管它会导致不可重复读、幻读和第二类丢失更新这些并发问题,在可能出现这类问题的个别场合,可以由应用程序采用悲观锁或乐观锁来控制。
小结:
隔离级别越高,越能保证数据的完整性和一致性,但是对并发性能的影响也越大。对于多数应用程序,可以优先考虑把数据库系统的隔离级别设为Read Committed。它能够避免脏读取,而且具有较好的并发性能。尽管它会导致不可重复读、幻读和第二类丢失更新这些并发问题,在可能出现这类问题的个别场合,可以由应用程序采用悲观锁或乐观锁来控制。
阅读全文
0 0
- 事务级别 锁 隔离级别
- 事务隔离级别
- SQL事务隔离级别
- 关于事务隔离级别
- 关于事务隔离级别
- 事务隔离级别
- 事务隔离级别
- 数据库事务隔离级别
- SQL事务隔离级别
- JDBC事务隔离级别
- SQL事务隔离级别
- 事务隔离级别演示
- 事务隔离级别
- 数据库事务隔离级别
- 事务隔离级别
- 事务隔离级别2
- 事务隔离级别
- 事务隔离级别-转
- 打印九九乘法表
- 事务隔离级别
- Android App 的设计架构:MVC、MVP、MVVM 的分析
- Qt笔记--自己挖的替换的坑
- Python什么情况下会生成pyc文件?
- 事务隔离级别
- 救火必备linux命令小结(一)------查问题
- html之表格
- [自定义VIEW]仿闪屏页面的倒计时控件
- c语言单链表的创建、插入、删除
- Java Web 半自动开发
- Web 安全
- JAVA代码提示
- mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)