当前位置:Gxlcms > 数据库问题 > mysql 锁和隔离事务

mysql 锁和隔离事务

时间:2021-07-01 10:21:17 帮助过:22人阅读

--查询表锁争用情况
show status like ‘ord%‘;
--查看数据库中表的状态,是否被锁;
SHOW PROCESSLIST;

--脏读 读未提交
--A事务读取了B事务修改但未提交的数据 B稍后时候进行了回滚,那么A就发生了脏读

--不可重复读 读不回去了
--A事务在进行相同条件查询的时候,(两次或者两次以上)出现了每次结果不一样,因为在查询期间有其他事务进行了update操作,导致结果不一致


--幻读 读多了
--A事务在进行相同条件查询的时候,因为在查询期间发现记录数不一样了 ,因为进行了insert操作,导致结果不一致

--隔离级别
--1. 1 Read uncommitted 脏读
--2. 2 Read committed 避免脏读 会有重复读和幻读
--3. 4 repeatable read 可重复读 避免不可重复读
--4. 8 serializable 避免幻读 这样性能会低


--1关闭A自动提交
set autocommit =0;
--3开启事务
start transaction;
--4执行更新
update tableA set nane=‘je‘ where id=‘1‘;
--6回滚
rollback;

--2设置B隔离级别 读到A的未提交的数据uncommitted
--Read uncommitted(脏读)Read committed(不脏读)||repeatable read (重复读)|| serializable(幻读)
set session transaction isolation level Read uncommitted;
--5执行查询 查询结果为je
select * from tableA ;
--7 结果为原来的不是je
select * from tableA ;

mysql 锁和隔离事务

标签:相同   back   不可重复读   情况   tar   可重复   ali   sele   条件查询   

人气教程排行