,,之前写了一篇浅谈事务(一),算是对事务的一个基本认识,今天来简单总结一下事务的隔离级别,虽然是老掉牙的知识点,重温一下还是值得的。
,,在MySQL中基本有这两种事务隔离级别的设置,默认的RR(可重复读)和实际中常见的RC(授权读取)。两者区别是什么,怎么正确理解,用几个SQL语句就能说明白,就用简单的实验来说明白。
,,我们开始吧只,,,
,,首先创建一个测试表测试,插入一些数据。
创建表的测试(int id主键名称varchar(30),备忘录varchar (30));
插入测试值(“name1”,“aaaa”), (2)“name2”,“aaaa”), (3“name3”“aaaa”), (4“name4”“aaaa”), (5“name5”“aaaa”),,,,很多情况下,我们会把隔离级别从默认的RR修改为钢筋混凝土,这也是其它很多数据库默认的事务隔离级别。
我们打开两个窗口,来对比关联测试。
RC模式下的测试1
窗口1
在显示变量如“tx_isolation”;,,
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| Variable_name | Value ,,,,,,,,|
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| tx_isolation |读取提交|
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
1行集(0.01秒)
在开始,,——开启事务
在select *从测试,,——查看数据
+ - - - - - - - - - - - - - - - - - - + +
| | id name 备忘录| |
+ - - - - - - - - - - - - - - - - - - + +
|,1 | name1 | aaaa |
|,2 | name2 | aaaa |
|,3 | name3 | aaaa |
|,4 | name4 | aaaa |
|,5 | name5 | aaaa |
+ - - - - - - - - - - - - - - - - - - + +
5行集(0.00秒)
2
窗口2
开始,,——开启事务
在更新测试集名称=拔逍羌丁眎d=2;,——修改一条记录
查询好了,1行影响(0.06秒)
行匹配:1,改变:1,警告:0
在提交,,——提交事务
查询好,0行影响(0.01秒)
1
窗口1
在select *从测试,,,——查看窗口1中的数据,就会发现原来窗口的数据发生了变化,这是不可重复读的一个典型例子。
+ - - - - - - - - - - - - - - - - - - + +
| | id name 备忘录| |
+ - - - - - - - - - - - - - - - - - - + +
|,1 | name1 | aaaa |
|,2 |五星级| aaaa |
|,3 | name3 | aaaa |
|,4 | name4 | aaaa |
|,5 | name5 | aaaa |
+ - - - - - - - - - - - - - - - - - - + +
5行集(0.00秒)
再来看看RR这个隔离级别,其实有了上面的测试,就相对有底了。这是MySQL默认的隔离级别,会出现幻读的情况。
1
窗口1
首先修改隔离级别从RC到RR
在设定全球事务隔离级别可重复读;
查询好,0行影响(0.00秒)
?查看事务隔离级别。
在显示变量如“tx_isolation”;
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| Variable_name | Value ,,,,,,,,,|
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| tx_isolation |可重复读|
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
1行集(0.00秒)
在开始,,,——开启事务
在select *从测试,,,——查看表测试的数据。
+ - - - - - - - - - - - - - - - - - - + +
| | id name 备忘录| |
+ - - - - - - - - - - - - - - - - - - + +
|,1 | name1 | aaaa |
|,2 |五星级| aaaa |
|,3 | name3 | aaaa |
|,4 | name4 | aaaa |
|,5 | name5 | aaaa |
+ - - - - - - - - - - - - - - - - - - + +
5行集(0.00秒)
2