`
反求诸己
  • 浏览: 536854 次
  • 性别: Icon_minigender_1
  • 来自: 湖南娄底
社区版块
存档分类
最新评论

hibernate Isolation Level(事务隔离等级)

 
阅读更多

hibernate Isolation Level(事务隔离等级)

 

1、Serializable:最严格的级别,事务串行执行,资源消耗最大;
2、REPEATABLE READ:保证了一个事务不会修改已经由另一个事务读取但未提交(回滚)的数据。避免了“脏读取”和“不可重复读取”的情况,但是带来了更多的性能损失。
3、READ COMMITTED:大多数主流数据库的默认事务等级,保证了一个事务不会读到另一个并行事务已修改但未提交的数据,避免了“脏读取”。该级别适用于大多数系统。
4、Read Uncommitted:保证了读取过程中不会读取到非法数据。隔离级别在于处理多事务的并发问题。
我们知道并行可以提高数据库的吞吐量和效率,但是并不是所有的并发事务都可以并发运行。
我们首先说并发中可能发生的3中不讨人喜欢的事情
1: Dirty reads--读脏数据。也就是说,比如事务A的未提交(还依然缓存)的数据被事务B读走,如果事务A失败回滚,会导致事务B所读取的的数据是错误的。
2: non-repeatable reads--数据不可重复读。比如事务A中两处读取数据-total-的值。在第一读的时候,total是100,然后事务B就把total的数据改成 200,事务A再读一次,结果就发现,total竟然就变成200了,造成事务A数据混乱。
3: phantom reads--幻象读数据,这个和non-repeatable reads相似,也是同一个事务中多次读不一致的问题。但是non-repeatable reads的不一致是因为他所要取的数据集被改变了(比如total的数据),但是phantom reads所要读的数据的不一致却不是他所要读的数据集改变,而是他的条件数据集改变。比如Select account.id where account.name="ppgogo*",第一次读去了6个符合条件的id,第二次读取的时候,由于事务b把一个帐号的名字由"dd"改 成"ppgogo1",结果取出来了7个数据。

  Dirty reads non-repeatable reads phantom reads
Serializable 不会 不会 不会
REPEATABLE READ 不会 不会
READ COMMITTED 不会
Read Uncommitted


readOnly
事务属性中的readOnly标志表示对应的事务应该被最优化为只读事务。

 

另附转载文章地址【感谢!】

:http://blog.csdn.net/seng3018/article/details/6690559

分享到:
评论

相关推荐

    MY SQL 事务隔离 查询:默认事务隔离级别

    事务隔离 查询:默认事务隔离级别 mysql> select @@tx_isolation;当前会话的默认事务隔离级别 mysql> select @@session.tx_isolation;当前会话的默认事务隔离级别 mysql> select @@global.tx_isolation;全局的事务...

    TRANSACTION ISOLATION LEVEL

    RANSACTION ISOLATION LEVEL

    MySQL数据库事务隔离级别介绍(Transaction Isolation Level)

    主要介绍了MySQL数据库事务隔离级别(Transaction Isolation Level) ,需要的朋友可以参考下

    MySQL数据库:事务隔离级别.pptx

    SET [GLOBAL | SESSION] TRANSACTION ISOLATION LEVEL SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED 说明:如果指定GLOBAL,那么定义的隔离级将适用于所有的SQL用户;如果指定SESSION,则...

    innodb如何巧妙的实现事务隔离级别详解

    事务ACID特性,其中I代表隔离性(Isolation)。隔离性是指,多个用户的并发事务访问同一个数据库时,一个用户的事务不应该被其他用户的事务干扰,多个并发事务之间要相互隔离。 我们都知道事务的几种性质,数据库中的...

    数据库事务以及事务的隔离级别

     事务的四个属性:原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)。  1.原子性(Atomic)  重要的原则,也是容易理解的原则。被事务管理的所有方法,要么一起被提交,...

    msyql锁、事务隔离级别各种场景验证测试.rar

    我们的数据库一般都会并发执行多个事务,多个事务可能会并发的对相同的一批数据进行增删改查操作,可能 就会导致我们说的脏写、脏读、不可重复... 隔离性(Isolation) :数据库系统提供一定的隔离机制,保证事务在不受外

    面试刷题29:mysql事务隔离实现原理?

    mysql的事务是innodb存储引擎独有的,myisam存储引擎不支持事务。 事务最经典的例子就是转账了,事务要保证的是一组数据库的...Isolation隔离性 durability持久性; 事务隔离级别 事务的隔离级别有4个层级,隔离级别依

    transaction_isolation:以与数据库无关的方式在ActiveRecord中设置事务隔离级别

    不再维护-请分叉或寻求其他解决方案transaction_isolation 以与数据库无关的方式在ActiveRecord中设置事务隔离级别。 只要您使用的是新适配器mysql2,pg或sqlite3,就可以与MySQL,PostgreSQL和SQLite一起使用。 ...

    数据库事务的四大特征以及隔离级别

    隔离性(Isolation):并发的事务是相互隔离的,即一个事务内部的操作及正在操作的数据必须封锁起来,不能被其他企图修改的事务看到。 隔离性可以通过不一样的配置达到不一样的隔离级别。 持久性(Durability):...

    MySQL查看和修改事务隔离级别的实例讲解

    查看事务隔离级别 在 MySQL 中,可以通过show variables like ‘%tx_isolation%’或select @@tx_isolation;语句来查看当前事务隔离级别。 查看当前事务隔离级别的 SQL 语句和运行结果如下: mysql> show variables ...

    MySQL 四种事务隔离级别详解及对比

    MySQL 四种事务隔离级别详解及对比 按照SQL:1992 事务隔离级别,InnoDB默认是可重复读的(REPEATABLE READ)。MySQL/InnoDB 提供SQL标准所描述的所有四个事务隔离级别。你可以在命令行用–transaction-isolation选项...

    JDBC专题(六)-JDBC专题-事务的隔离级别.docx

    •隔离性(Isolation) 事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。 A ------> B B ------> C •持久性(Durability...

    spring3.0两种事务管理配置

    在 Spring 配置文件中,我们需要定义事务处理类,不同的数据访问方式,事务处理类不同,如 Hibernate 操作的 HibernateTransactionManager,JDBC 操作的使用 DataSourceTransactionManager。 接下来,我们需要定义...

    【面试高频!】数据库事务/事务的作用/数据库事务ACID属性 / 特性/事务的隔离性/数据库事务隔离级别/ 数据库的隔离级别导致问题/数据库事务的使用/mysql的事务死锁/ 快速解决mysql死锁问

    隔离性(Isolation):隔离执行事务,使它们好像是系统在给定时间内执行的唯一操作。 持久性(Durability):事务完成后,该事务对数据库的更改持久保存在数据库中。 事务的隔离性 对于同时运行的多个事务,当这些事物...

    MySQL数据库事务隔离级别

    数据库隔离级别有四种,应用《高性能mysql》一书中的说明:然后说说修改事务隔离级别的方法:1.全局修改,修改mysql.ini配置文件,在最后加上#可选参数有:READ-UNCOMMITTED,READ-COMMITTED,REPEATABLE-READ,...

    (详细)事务特性和隔离级别

    ** (详细)事务特性和隔离级别 ...隔离性(Isolation):并发的数据库事务操作场景下,各事务间相互隔离,互不影响。 持久性(Durability):事务一旦提交后,事务执行结果永久保留在数据库中。 二.事务隔离级别 2.1 RE

    Python sqlite3事务处理方法实例分析

    在connect()中不传入 isolation_level 事务处理: 使用connection.commit() #!/usr/bin/env python # -*- coding:utf-8 -*- '''sqlite3事务总结: 在connect()中不传入 isolation_level 事务处理: 使用connection....

    2019-8-7-MySQL的四种事务隔离级别1

    2、一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 3、隔离性(Isolation):同一时间,只允许一个事务请求同一数据

Global site tag (gtag.js) - Google Analytics