mysql下事务和锁
来源:互联网 发布:软件销售提成方案 编辑:程序博客网 时间:2024/06/04 17:44
事务一
事务二
start transaction;
start transaction;
P1
selectc from a where a=1;
update a set c=c+1where a=1;
P2
selectc from a where a=1 for update;
Q1
selectc from a where a=1;
commit;
P3
selectc from a where a=1;
commit;
同一个事务中
select c from a where a=1 for update
与
select c from a where a=1
取出的值不一样
REPEATABLE READ(可重复读)
P1=P3=0
P2=Q1=1
READ COMMITTED
P1=0
P2=P3=Q1=1
事务一
事务二
start transaction;
P1
selectc from a where a=1;
start transaction;
update a set c=c+1where a=1;
Q1
selectc from a where a=1;
P2
selectc from a where a=1;
commit;
P3
selectc from a where a=1;
一致性的非锁定读:
通过Undo段实现,不同的隔离级别读取的快照数据不同
多版本并发控制(Multi Version Concurrency Control, MVCC)
REPEATABLE READ(可重复读)
P1=P2=P3=0
Q1=1
READ COMMITTED
P1=P2=0
P3=Q1=1
事务一
事务二
结果(更新后
读最新值)
start transaction;
start transaction;
Q1
selectc from a where a=1;
0
update a set c=c+1where a=1;
Q1
selectc from a where a=1;
1
commit;
P1
selectc from a where a=1;
1
事务一
事务二
结果(更新后
读最新值)
start transaction;
start transaction;
P1
selectc from a where a=1;
0
update a set c=c+1where a=1;
Q1
selectc from a where a=1;
1
update a set c=c+1where a=1;
commit;
P2
selectc from a where a=1;
3
事务一
事务二
begin;
P1
update a set a=2 where a=1;
begin;
Q1
update a set c=37 where a=1;
commit;
写一致性
REPEATABLE READ(可重复读)
重新启动更新
READ COMMITTED
重新启动更新
事务一
事务二
next-key-lock
begin;
select c from a where a<3 lock in share mode;
begin;
Insert into a(a) select 1;
锁等待
Commit;
SELECT@@tx_isolation;
SET [SESSION |GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED |REPEATABLE READ | SERIALIZABLE}
SET SESSION TRANSACTION ISOLATION LEVELREPEATABLE READ;
- mysql下事务和锁
- mysql 事务和锁
- MYSQL事务和锁
- mysql事务和锁InnoDB
- mysql事务和锁InnoDB
- mysql事务和锁InnoDB
- mysql事务和锁InnoDB
- mysql事务和innodb锁
- mysql事务和锁InnoDB
- mysql事务和锁InnoDB
- mysql事务和锁InnoDB
- mysql查询事务和锁
- mysql的事务和锁
- mysql事务和锁InnoDB
- mysql事务和锁InnoDB
- mysql事务和锁InnoDB
- mysql事务和锁InnoDB
- MySQL—事务和锁
- android studio安装出现两个图标的问题
- class_create
- POST和GET
- bootstrap 模态框显示时点击遮罩层禁止关闭,点击按钮时关闭模态框。
- SDUTOJ 树的同构
- mysql下事务和锁
- Aprior算法 -- Java实现
- iOS-cocopods换源
- linux下安装gensim的方法。
- Struts2-通配符
- git fetch 和 git pull 的区别
- 特洛伊木马后传 ——浅谈互联网创业的艰辛
- 2015杭电新生赛1003玩骰子【大型模拟】
- linux下centOS系统让tomcat以service方式运行