脏读原理: 在Commit()之前,表里面的数据已经更新,但是如果在不执行Commit()语句就关闭或停止调试的话,表里面改变的值就会回滚到原来的值。 SQL 标准中定义了 4 个隔离级别: read uncommited , read commited , repeatable read , se ...
分类:
数据库 时间:
2016-05-15 16:52:20
阅读次数:
218
1. 幻读 幻读(Phantom Read)又称为虚读,是指在一个事务内两次查询中数据条数不一致,幻读和不重复读有些类型,同样是在两次查询过程中,不同的是,幻读是由于其他事务做了插入记录的操作,导致记录数有所增加。 例如:银行在做统计报表时统计account表中所有用户的总金额时候,此时总共有三个账 ...
分类:
数据库 时间:
2016-05-15 09:40:38
阅读次数:
327
事务属性:
1.传播行为.
2.隔离级别
1.读未提交
2.读已提交
3.可以重复读
4.串行化
3.只读:优化
4.超时,释放资源
5.回滚规则:异常抛出,任然可以提交事务.
[user ] 1 n [ survery ] 1 n[pag...
分类:
数据库 时间:
2016-05-13 03:09:32
阅读次数:
235
mysql 锁表:
隔离级别使用RR:
mysql> SELECT @@GLOBAL.tx_isolation, @@tx_isolation;
+-----------------------+-----------------+
| @@GLOBAL.tx_isolation | @@tx_isolation |
+-----------------------+-------------...
分类:
数据库 时间:
2016-05-12 11:36:17
阅读次数:
205
spring传播属性PROPAGATION_REQUIRED:该方法必须运行在一个事务中。如果一个事务正在运行,该方法将运行在这个事务中。否则,就开始一个新的事务。Spring事务的隔离级别1.ISOLATION_DEFAULT:这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别..
分类:
编程语言 时间:
2016-05-11 20:22:23
阅读次数:
288
在我们对事务的基本概念以及出现的问题和隔离级别有进一步的了解之后,接下来看看EJB是如何进行事务管理. 在EJB中有两种使用事务的方式。第一种方式通过容器管理的事务,叫CMT(Container-Managed Transaction),另一种通过Bean管理的事务叫BMT(Bean-Managed ...
分类:
其他好文 时间:
2016-05-11 18:14:26
阅读次数:
290
1. 背景: 初时提出,是为解决分布式数据库的事务问题。单机数据库事务可靠日志技术,MVCC技术实现。分布式情况下,就需要额外的手段来保证,这才出现了二阶段提交。 2. 流程: 从角色上,二阶段提交分为两种角色:协调者(coordinate),参与者(participant)。流程思路上很简单: 1 ...
分类:
其他好文 时间:
2016-05-11 16:40:25
阅读次数:
116
spring的事务隔离级别ISOLATION_DEFAULT:使用数据库默认的隔离级别。
ISOLATION_READ_UNCOMMITTED:允许读取改变了的还未提交的数据,可能导致脏读、不可重复读和幻读。
ISOLATION_READ COMMITTED:允许并发事务提交之后读取,可以避免脏读,可能导致重复读和幻读。
ISOLATION_REPEATABLE_READ:对相同字段的多次读取...
分类:
编程语言 时间:
2016-05-11 07:19:23
阅读次数:
154
来源于mysql高性能第三版:我们通过Innodb的简化版行为来说明mvcc是如何工作的。InnoDB的MVCC,是通过每行记录后便保存两个隐藏的列来实现的。这两个列,一个保存了行的创建时间,一个保存了行的过期时间(删除时间)。当然存储的并不是实际的时间值,而是系统版本号。每开始一..
分类:
数据库 时间:
2016-05-10 19:00:33
阅读次数:
183
2.事务四大隔离级别1、如果是两个线程并发修改,一定会互相捣乱,这时必须利用锁机制防止多个线程的并发修改2、如果两个线程并发查询,没有线程安全问题3、如果两个线程一个修改,一个查询......会有3种问题:1).脏读:一个事务读取到另一个事务未提交的数据2).不可重复读:在一个事..
分类:
其他好文 时间:
2016-05-10 11:12:36
阅读次数:
334