Transaction

事务的特性(隔离级别)

A:原子性。说明事务是一个不可分割的单位。
C:一致性.事务必须使数据库从一个一致性状态变换到另外一个一致性状态.(比如转账)
*I:隔离性。一个事务不能被其他事务打扰。
D:持久性。事务一旦提交,就应该被永久保存起来。

隔离级别的分类:
READ UNCOMMITTED:脏读、不可重复读、虚读都有可能发生。
READ COMMITTED:能避免脏读,不可重复读、虚读都有可能发生。
REPEATABLE READ:能避免脏读、不可重复度,虚读都有可能发生。
SERIALIZABLE:能避免脏读、不可重复度、虚读。

如果不考虑事务的隔离级别,会出现以下“不正确”的情况:
脏读:指一个事务读到了另一个事务中未提交的数据。
不可重复读:针对一条记录的,同一条记录前后不一样
虚读(幻读):针对一张表,前后读到的记录条数不一样。

MySQL中控制事务隔离级别的语句:
select @@tx_isolation;     //查看当前的事务隔离级别
set transaction isolation level 你的级别(四种之一);//设置隔离级别

时间: 2024-10-24 07:41:28

Transaction的相关文章

事务Transaction 那点事儿

Transaction 也就是所谓的事务了,通俗理解就是一件事情.从小,父母就教育我们,做事情要有始有终,不能半途而废. 事务也是这样,不能做一般就不做了,要么做完,要么就不做.也就是说,事务必须是一个不可分割的整体,就像我们在化学课里学到的原子,原子是构成物质的最小单位.于是,人们就归纳出事务的第一个特性:原子性(Atomicity).我靠,一点都不神秘嘛. 特别是在数据库领域,事务是一个非常重要的概念,除了原子性以外,它还有一个极其重要的特性,那就是:一致性(Consistency).也就是

spring junit jpa transaction

package com.fengshu.gotian.applicationImpl; import java.util.List; import javax.annotation.Resource; import org.apache.log4j.Logger; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration;

Spring Transaction

spring 推荐使用 public void save(Good good) {         this.sessionFactory.getCurrentSession().save(good);     } 以上编写dao代码,推荐使用hibernateTemplate,避免框架的入侵.这种方式如果不配置事务管理 <!--<aop:config>-->         <!--<aop:pointcut id="goodServiceMethods&q

[原创]MySQL下关于begin或start transaction是否真正开启新事务的探索?

Server version:         5.6.21-log MySQL Community Server (GPL) 前提提要: 我们知道MySQL的RR(repeatable read)隔离级别下,事务无法看到正在活跃的事务所做的操作包括提交后的. 一般手动开启事务的命令是begin或start transaction:我以前的理解是一旦执行这条语句就已经开启了事务,也就是事务id已经生成(可用于MVCC版本比较),事务A和事务B一起执行begin,事务A的所有操作的提交事务B都看不

JDBC - Transaction

Transaction: a bunch of operation in logic, the unit which consists the operation will works all or breaks down all. Every operation of MySQL server is a independent transaction in default situation. TPL(Transaction Processing Language): start transa

HyperLedger Fabric 1.0的Transaction处理流程

如果把区块链比作一个只能读写,不能删改的分布式数据库的话,那么事务和查询就是对这个数据库进行的最重要的操作.以比特币来说,我们通过钱包或者Blockchain.info进行区块链的查询操作,而转账行为就是Transaction的处理.而HyperLedger Fabric在1.0对系统架构进行了升级,使得事务的处理更加复杂. 一.架构 让我们来看看Fabric 0.6到1.0的架构图: 这个图来自IBM微课堂第三讲,我们可以看到原来单一的peer节点在1.0中进行了拆分,分为peer(背书节点和

Missing artifact javax.transaction:jta:jar:1.0.1B

下载https://pan.baidu.com/s/1hsfyj8S到某目录,比如: /Users/yintingting/Downloads 打开terminal,cd /Users/yintingting/Downloads进入目录, 输入: mvn install:install-file   -Dfile=./jta-1_0_1B-classes.zip   -DgroupId=javax.transaction   -DartifactId=jta -Dversion=1.0.1B  

SMON: Parallel transaction recovery tried 引发的问题--转载

SMON: Parallel transaction recovery tried 这个一般是在具有在跑大数据量的 transaction的时候kill掉了进程而导致 smon 去清理 回滚段时导致的. 这个在业务高峰期的时候,如果发现这个,有可能导致 SMON 占用了 100% cpu 而导致 系统 hang 在那边.即使你shutdown immediate ,oracle 也会等待 smon 清理完毕才能关机,而这个等待过程也许是漫长的.如果你 shutdown abort,那么oracl

[转]How expensive are page splits in terms of transaction log?

How expensive are page splits in terms of transaction log? By: Paul Randal Page splits are always thought of as expensive, but just how bad are they? In this post I want to create an example to show how much more transaction log is created when a pag

Compensating Transaction Pattern(事务修正模式)

Undo the work performed by a series of steps, which together define an eventually consistent operation, if one or more of the steps fail. Operations that follow the eventual consistency model are commonly found in cloud-hosted applications that imple