千云物流 -低代码平台MySQL事务分析
事务隔离级别
事务隔离级别 | 一句话记住 | 脏读 | 不可重复读 | 幻读 |
---|---|---|---|---|
读未提交 | Y | Y | Y | |
不可重复读 | 读的读的就变了 | N | Y | Y |
可重复读 | 读什么就是什么 | N | N | Y |
串行化 | N | N | N |
MySQL默认隔离级别是可重复读
select @@global.tx_isolation
select @@session.tx_isolation
select @@tx_isolation
简单测试说明,准备环境
create table test (id int primary key,name varchar(30),memo varchar (30));
insert into test values(1,'name1','aaaa'),(2,'name2','aaaa'),(3,'name3','aaaa'),(4,'name4','aaaa'),(5,'name5','aaaa');
不可重复读 Read-Committed
窗口1
begin;
select * from test;
窗口2
begin;
update test set name ='aaaaa' where id =2;
commit;
窗口1
begin;
-- 重复执行查询到的数据变化了
select * from test;
可重复读 Repeatable-Read
set global transaction isolation level repeeatable read;
窗口1
begin;
select * from test;
窗口2
begin;
update test set name ='RR_test'
commit;
窗口1
begin;
-- 重复执行查询到的数据一直不会变
select * from test;
commit;
-- 查询到的数据发生了变化,实际没有有有有有有有有有有有有有有有有由于进行dml操作
select * from test;
可重复读 Read-Uncommitted
可重复读 Serializable
原文地址:https://blog.csdn.net/u013642886/article/details/142372295
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!