1、数据库事务基础知识 1)数据库事务有严格的定义,它必须同时满足4个特性:原子性(Atomic)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),简称ACID。 2)数据并发的问题:脏读、不可重复读、幻想读、第一类丢失更新、第二类丢失更新。 3)数据 ...
分类:
编程语言 时间:
2016-06-14 11:37:09
阅读次数:
223
引言 为什么需要锁(并发控制)? 在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这会产生冲突。这就是著名的并发性问题。 典型的冲突有: 丢失更新:一个事务的更新覆盖了其它事务的更新结果,就是所谓的更新丢失。例如:用户A把值从6改为2,用户B把值从2改为6,则用户A丢失了他的更新。 脏读: ...
分类:
其他好文 时间:
2016-06-14 08:54:49
阅读次数:
196
数据库是要被广大客户所共享访问的,那么在数据库操作过程中很可能出现以下几种不确定情况。 更新丢失(Lost update) 两个事务都同时更新一行数据,但是第二个事务却中途失败退出,导致对数据的两个修改都失效了。这是因为系统没有执行任何的锁操作,因此并发事务并没有被隔离开来。 脏读(Dirty Re ...
分类:
数据库 时间:
2016-05-31 10:15:48
阅读次数:
374
锁的概述 一. 为什么要引入锁 多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: 丢失更新A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统 脏读A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此 ...
分类:
数据库 时间:
2016-05-22 16:43:35
阅读次数:
209
注明: 本文转载自http://www.hollischuang.com/archives/898 数据库的读现象浅析中介绍过,在并发访问情况下,可能会出现脏读、不可重复读和幻读等读现象,为了应对这些问题,主流数据库都提供了锁机制,并引入了事务隔离级别的概念。 并发控制 在计算机科学,特别是程序设计 ...
分类:
数据库 时间:
2016-05-18 23:49:58
阅读次数:
273
注明: 本文转载自http://www.hollischuang.com/archives/900 “读现象”是多个事务并发执行时,在读取数据方面可能碰到的状况。先了解它们有助于理解各隔离级别的含义。其中包括脏读、不可重复读和幻读。 脏读 脏读又称无效数据的读出,是指在数据库访问中,事务T1将某一值 ...
分类:
数据库 时间:
2016-05-18 23:29:15
阅读次数:
141
脏读原理: 在Commit()之前,表里面的数据已经更新,但是如果在不执行Commit()语句就关闭或停止调试的话,表里面改变的值就会回滚到原来的值。 SQL 标准中定义了 4 个隔离级别: read uncommited , read commited , repeatable read , se ...
分类:
数据库 时间:
2016-05-15 16:52:20
阅读次数:
218
这一章节我们来讨论一下由同步的synchronized (newobject()) 引起的异步现象。1.代码清单package com.ray.deepintothread.ch02.topic_14;
/**
*
* @author RayLee
*
*/
public class AsynchOfSynchWithUnSameObject {
public static void...
分类:
编程语言 时间:
2016-05-13 02:55:32
阅读次数:
170
这一章节我们来讨论一下解决由同步的synchronized (newobject()) 引起的异步现象和脏读的方法。1.代码清单package com.ray.deepintothread.ch02.topic_14;
/**
*
* @author RayLee
*
*/
public class DirtyRead {
public static void main(String...
分类:
编程语言 时间:
2016-05-12 22:57:32
阅读次数:
247
spring的事务隔离级别ISOLATION_DEFAULT:使用数据库默认的隔离级别。
ISOLATION_READ_UNCOMMITTED:允许读取改变了的还未提交的数据,可能导致脏读、不可重复读和幻读。
ISOLATION_READ COMMITTED:允许并发事务提交之后读取,可以避免脏读,可能导致重复读和幻读。
ISOLATION_REPEATABLE_READ:对相同字段的多次读取...
分类:
编程语言 时间:
2016-05-11 07:19:23
阅读次数:
154