半个PostgreSQL DBA,热衷于数据库相关的技术。我的ppt分享https://pan.baidu.com/s/1eRQsdAa https://github.com/chenhuajun https://chenhuajun.github.io
分类: Mysql/postgreSQL
2013-09-15 11:08:26
先执行SQL\后执行SQL |
同一行查询 | 非同行查询 | 整表查询 | 同一行插入 | 非同行插入 | 同一行更新 | 非同行更新 | 整表更新 | 同一行删除 | 非同行删除 | 整表删除 |
单行查询 | OK | OK | OK | 主键冲突 | OK | OK | OK | OK | OK | OK | OK |
整表查询 | OK | OK | OK | 主键冲突 | OK | OK | OK | OK | OK | OK | OK |
插入 |
OK(*) |
OK |
OK(*) |
等待(*) | OK | 等待(*) | OK |
OK(**) |
等待(*) | OK | 等待(*) |
单行更新 |
OK(*) |
OK |
OK(*) |
等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
整表更新 |
OK(*) |
OK |
OK(*) |
等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
单行删除 |
OK(*) |
OK |
OK(*) |
等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
整表删除 |
OK(*) |
OK |
OK(*) |
等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
先执行SQL\后执行SQL |
同一行查询 | 非同行查询 | 整表查询 | 同一行插入 | 非同行插入 | 同一行更新 | 非同行更新 | 整表更新 | 同一行删除 | 非同行删除 | 整表删除 |
单行查询 | OK | OK | OK | 主键冲突 | OK | OK | OK | OK | OK | OK | OK |
整表查询 | OK | OK | OK | 主键冲突 | OK | OK | OK | OK | OK | OK | OK |
插入 |
OK(**) |
OK |
OK(**) |
等待(*) | OK | 等待(*) | OK |
OK(**) |
等待(*) | OK | 等待(*) |
单行更新 |
OK(**) |
OK |
OK(**) |
等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
整表更新 |
OK(**) |
OK |
OK(**) |
等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
单行删除 |
OK(**) |
OK |
OK(**) |
等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
整表删除 |
OK(**) |
OK |
OK(**) |
等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
先执行SQL\后执行SQL |
同一行查询 | 非同行查询 | 整表查询 | 同一行插入 | 非同行插入 | 同一行更新 | 非同行更新 | 整表更新 | 同一行删除 | 非同行删除 | 整表删除 |
单行查询 | OK | OK | OK | 主键冲突 | OK | OK | OK | OK | OK | OK | OK |
整表查询 | OK | OK | OK | 主键冲突 | OK | OK | OK | OK | OK | OK | OK |
插入 |
OK(***) |
OK |
OK(***) |
等待(*) | OK | 等待(*) | OK |
等待(*) |
等待(*) | OK | 等待(*) |
单行更新 |
OK(***) |
OK |
OK(***) |
等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
整表更新 |
OK(***) |
OK |
OK(***) |
等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
单行删除 |
OK(***) |
OK |
OK(***) |
等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
整表删除 |
OK(***) |
OK |
OK(***) |
等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
先执行SQL\后执行SQL | 同一行查询 | 非同行查询 | 整表查询 | 同一行插入 | 非同行插入 | 同一行更新 | 非同行更新 | 整表更新 | 同一行删除 | 非同行删除 | 整表删除 |
单行查询 | OK | OK | OK | 主键冲突 | OK |
等待(*) |
OK |
等待(*) |
等待(*) |
OK |
等待(*) |
整表查询 | OK | OK | OK | 主键冲突 | 等待(*) |
等待(*) |
OK |
等待(*) |
等待(*) |
OK |
等待(*) |
插入 |
等待(*) |
OK |
等待(*) |
等待(*) | OK | 等待(*) | OK |
等待(*) |
等待(*) | OK | 等待(*) |
单行更新 |
等待(*) |
OK |
等待(*) |
等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
整表更新 |
等待(*) |
OK |
等待(*) |
等待(*) | 等待(*) | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
单行删除 |
等待(*) |
OK |
等待(*) |
等待(*) | OK | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
整表删除 |
等待(*) |
OK |
等待(*) |
等待(*) | 等待(*) | 等待(*) | OK | 等待(*) | 等待(*) | OK | 等待(*) |
No | 事务1 | 事务2 | 备注 |
1 |
select * from tb2 where id=1; 1 1 a a |
|
|
2 |
|
update tb2 set name2='b' where id=1; 1 Rows updated! |
|
3 |
select * from tb2 where id=1; 1 1 a a |
|
很好:没有出现脏读 |
4 |
|
commit |
|
5 |
select * from tb2 where id=1; 1 1 a a |
|
很好:没有出现不可重复读 |
6 |
update tb2 set name='a1' where id=1; 1 Rows updated! |
|
|
7 |
select * from tb2 where id=1; 1 1 a1 b |
|
糟糕:name2的值怎么跟以前不一样了。(即出现了不可重复读) |
8 | commit |
|
|