博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Just for fun——MySQL事务的隔离级别
阅读量:7233 次
发布时间:2019-06-29

本文共 832 字,大约阅读时间需要 2 分钟。

事务的隔离级别

数据库事务的隔离级别有4个,由低到高依次为Read Uncommitted(RU)、Read Committed(RC)、Repeatable Read(RR)、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。

√: 可能出现 ×: 不会出现

** 脏读 不可重复读 幻读
Read uncommitted
Read committed ×
Repeatable read × ×
Serializable × × ×

MySQL事务(InnoDB)的默认隔离级别为RR,另外MySQL通过MVCC(多版本并发控制)技术解决了环读的问题。

然后我们来看个简单而Happy的小栗子:

原料

CREATE TABLE `user` (  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,  `name` varchar(20) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ------------------------------ Records of user-- ----------------------------INSERT INTO `user` VALUES ('1', 'wang');INSERT INTO `user` VALUES ('2', 'meng');INSERT INTO `user` VALUES ('3', 'salamander');

操作

Client 1

开启事务后查询数据

clipboard.png

Client 2

开启事务,改变数据

clipboard.png

然后在Client 1中再次查询

clipboard.png

发现查询数据还是不变

Client 2提交事务

clipboard.png

再次在Client 1中查询数据

clipboard.png

发现查询数据还是不变,(~。。~)

然后,你可以想象了,为什么这样呢?

转载地址:http://fllfm.baihongyu.com/

你可能感兴趣的文章
并查集【转】
查看>>
20160127 linux 学习笔记
查看>>
SqlServer 还原,备份 Sql脚本命令
查看>>
Hello Shiro
查看>>
模型驱动
查看>>
15.CSS选择器【上】
查看>>
const的用法
查看>>
Hibernate(或其它ORM)里的inverse用法详解,内容摘自Java web轻量级开发面试教程...
查看>>
SQL Server 2008读书笔记(3):表
查看>>
Hibernate中Session.get()方法和load()方法的详细比较(转)
查看>>
【题解】牛栏
查看>>
在linux命令下如何访问一个url?
查看>>
I.MX6 Android 移除 Settings wifi功能
查看>>
初识Webpack
查看>>
BZOJ-4260-Codechef REBXOR(trie树)
查看>>
洛谷OJ P1379 八数码难题 解题报告
查看>>
MySQL练习题
查看>>
Cucumber 入门【转】
查看>>
JDBC为什么要使用PreparedStatement而不是Statement
查看>>
【python3的学习之路一】输入和输出
查看>>