MySQL数据库的事务隔离级别

原创 2015年11月18日 08:46:51

概述

继续说一下数据库的原理性基础——事务隔离级别。

事务隔离级别说的是并行执行的多个事务之间的关系,另外一个原理性基础——事务传播属性,这个概念说的是存在包含管理的多个事务之间的关系(这个概念应该是在代码层面的,而不是数据库层面的,比如常说的spring事务传播属性)。

事务隔离级别

四种级别:

关键字 隔离级别
read uncommitted 不提交读(其他事务未提交的修改可以读取到)
read committed 提交读(其他事务的修改只有当事务提交后才可以读取到)
repeatable read 可重复读
serializable 串行化

四种级别的影响

隔离级别 脏读可能性 不可重复读可能性 幻读可能性
read uncommitted Y Y Y
read committed N Y Y
repeatable read N N Y
serializable N N N

说一下三种读取问题:
脏读是读取到了另外一个事务未提交的修改,但是该修改最终被回滚取消了。
不可重复读是第一次读取到了一的数据,在第二次读取时被另一个事务修改了,也就是两次读取到数据不一样。
幻读是第二次读取到的数据比第一次读取到的数据多的某些行,也就是在两次读取之间其他的事务进行了插入新行的操作,出现了幻影行。

虽然,上表是《高性能MySQL》给出的,错误是没有。但是要注意,这里给出的是“可能性”,对于InnoDB来说在默认的repeatable read隔离级别是通过多版本并发控制实现了避免幻读功能的。也就是说对于常用的InnoDB引擎来说repeatable read隔离级别完全避免的脏读、不可重复读和幻读的。

隔离级别的修改

1.全局修改

修改mysql.ini配置文件,在最后加上:
[mysqld]
transaction-isolation = REPEATABLE-READ

2.在控制台输入:set session transaction isolation level repeatable read;

3.在应用层面的连接池处修改

dbcp连接池属性:
这里写图片描述

推荐文章

1.下面这篇文章截取了《高性能MySQL》里面的描述,另外添加了蛤蜊级别的修改方法:http://www.cnblogs.com/zemliu/archive/2012/06/17/2552301.html

2.下面这篇说道了事务隔离级别和锁机制(隔离级别也是借用的《高性能MySQL》内容):http://www.cnblogs.com/wenfeng762/archive/2011/11/06/2237253.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

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

转自:http://www.cnblogs.com/zemliu/archive/2012/06/17/2552301.html             http://blog.csd...

mysql数据库事务隔离级别详解

事务是一组原子性的SQL查询语句,也可以被看做一个工作单元。如果数据库引擎能够成功地对数据库应用所有的查询语句,它就会执行所有查询,如果任何一条查询语句因为崩溃或其他原因而无法执行,那么所有的语句就都...

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

今天在学习JDBC的时候看到了关于MySQL的事务的隔离级别的问题,感觉内容挺高级的,所以记录一篇文章,以备后面使用。数据库隔离级别有四种,应用《高性能mysql》一书中的说明: 然后说说修改事务隔离...

Mysql数据库事务隔离级别

目录目录 番外篇 数据库系统的事务 原子性 一致性 隔离性 Mysql事务隔离级别 Oracle事务隔离级别 SqlServer事务隔离级别 持久性番外篇 Session A Session ...

MySQL数据库事务隔离级别

MySQL数据库事务隔离级别(Transaction Isolation Level) 数据库隔离级别有四种,应用《高性能mysql》一书中的说明:   然后说说修改事务隔离级别...
  • djvc
  • djvc
  • 2014-08-18 16:28
  • 350

MySQL数据库引擎、数据事务与隔离级别

MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的。事务是指一组相互依赖的操作行为,事务的成功取决于这些相互依赖的操作行为是否都能执行成功,只要有一个操作行为失败,就意味着整个事务失败。数...

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

http://www.cnblogs.com/zemliu/archive/2012/06/17/2552301.html   然后说说修改事务隔离级别的方法: ...

mysql数据库事务隔离级别分析

mysql的事务隔离共分为四个级别:分别为read uncommitted(读未提交), read committed(读提交),repeatable read (重复读,同时需要声明重复读是mysq...

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

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

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

数据库隔离级别有四种,应用《高性能mysql》一书中的说明:   然后说说修改事务隔离级别的方法: 1.全局修改,修改mysql.ini配置文件,在最后加上 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)