pgsql(PostgreSQL)常用命令行操作_pgsql常用命令_石头wang的博客-CSDN博客
重要:事务的操作和事务的性质
操作演示
四种典型数据不一致现象:
串行调度和可串行调度
串行调度 顾名思义 就是可以进行调度的意思 可串行调度 就是 一种和串行调度等价的并行调度
效果是一样但是速度很快。
隔离级别的设置和查看
隔离级别---其实是一种弱隔离性
postgresql事务隔离级别如何查看以及设置_postgresql查看事务隔离级别_abcwywht的博客-CSDN博客
mysql数据库事务隔离级别的查看、设置、以及隔离级别有效范围的设置_mysql查看事务隔离级别_河马小胖子的博客-CSDN博客
(1条消息) postgreSQL默认的隔离级别及修改_瀚高PG实验室的博客-CSDN博客
两种默认的隔离级别
介绍和个别操作演示
BEGIN;
SET TRANSACTION ISOLATION LEVEL {
SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ
UNCOMMITTED };
psql的操作
SET TRANSACTION ISOLATION LEVEL { SERIALIZABLE |
REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED };
mysql的操作
Read Uncommited
缺点 脏读 不可重复读 和幻读 都可能发生.适合对数据一致性要求比较低的情况
Read Commited
可重复读------repeatable read
模式的暂时修改只能在事务内进行 ,生命周期事一个事务,如果想要在一个进程(可以理解为最大周期)内运行的话,需要修改默认的default_transaction_isolation;
红色笔 如果是read commit读到的将会是5
找到冲突可串行方法
🔒
两段锁协议
只要按照这样的方式进行加锁解锁 都是冲突可串行的调度
两段锁可能导致级联终止
严格调度不会出现级联终止-----SS2PL
可以解锁 但是解锁过程不能陆陆续续解锁,只有在事务结束的时候才能释放所有锁。
总结
从上到下 异常冲突的级别主键变小 但是相应产生的并发度也相对越低 所以在实际设计中 需要程序员尽量设计出并发度高的代码 同时也可以利用屏蔽来减少冲突。