PostgreSQL禁止的异象是什么
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,这篇文章主要讲解了"PostgreSQL禁止的异象是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"PostgreSQL禁止的异象是什么"吧!测试数
千家信息网最后更新 2025年01月21日PostgreSQL禁止的异象是什么
这篇文章主要讲解了"PostgreSQL禁止的异象是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"PostgreSQL禁止的异象是什么"吧!
测试数据
数据表idx,在id列上有索引,数据库默认的隔离级别为可串行化
15:44:16 [local:/data/run/pg12]:5120 pg12@testdb=# \d+ idx Table "public.idx" Column | Type | Collation | Nullable | Default | Storage | Statstarget | Description--------+-------------------+-----------+----------+---------+----------+--------------+------------- id | integer | | | | plain | | c1 | character varying | | | | extended | |Indexes: "idx_id" btree (id)Access method: heap[pg12@localhost pg122db]$ grep 'isolation' postgresql.confdefault_transaction_isolation = 'SERIALIZABLE'
Write触发
操作序列如下:
时间点 | T1 | T2 | T3 |
---|---|---|---|
t1 | begin; | ||
t2 | select * from idx where id = 1; | ||
t3 | begin; | ||
t4 | select * from idx where id = 10000; | ||
t5 | begin; | ||
t6 | update idx set c1 = 'x' where id = 10000; | ||
t7 | commit; | ||
t8 | update idx set c1 = 'x' where id = 1; |
session 2(T2)在执行update操作时会报错
-- session 215:46:52 [local:/data/run/pg12]:5120 pg12@testdb=#* update idx set c1 = 'x' where id = 1;ERROR: could not serialize access due to read/write dependencies among transactionsDETAIL: Reason code: Canceled on identification as a pivot, during write.HINT: The transaction might succeed if retried.15:47:10 [local:/data/run/pg12]:5120 pg12@testdb=#!
Read触发
操作序列如下:
时间点 | T1 | T2 | T3 |
---|---|---|---|
t1 | begin; | ||
t2 | select * from idx where id = 1; | ||
t3 | begin; | ||
t4 | update idx set c1 = 'x1' where id = 1; | ||
t5 | begin; | ||
t6 | update idx set c1 = 'x' where id = 10000; | ||
t7 | commit; | ||
t8 | select * from idx where id = 10000; |
session 2(T2)在执行select操作时会报错
15:54:41 [local:/data/run/pg12]:5120 pg12@testdb=#* select * from idx where id = 10000;ERROR: could not serialize access due to read/write dependencies among transactionsDETAIL: Reason code: Canceled on conflict out to pivot 423284, during read.HINT: The transaction might succeed if retried.15:55:16 [local:/data/run/pg12]:5120 pg12@testdb=#!
commit触发
操作序列如下:
时间点 | T1 | T2 |
---|---|---|
t1 | begin; | |
t2 | select * from idx where id = 1; | |
t3 | update tbl set c1 = 'x' where id = 10000; | |
t4 | begin; | |
t5 | select * from idx where id = 10000; | |
t6 | update idx set c1 = 'x' where id = 1; | |
t7 | commit; | |
t8 | commit; |
T1执行commit的时候会报错:
16:07:50 [local:/data/run/pg12]:5120 pg12@testdb=#* commit;ERROR: could not serialize access due to read/write dependencies among transactionsDETAIL: Reason code: Canceled on identification as a pivot, during commit attempt.HINT: The transaction might succeed if retried.
感谢各位的阅读,以上就是"PostgreSQL禁止的异象是什么"的内容了,经过本文的学习后,相信大家对PostgreSQL禁止的异象是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
序列
数据
时间
会报
学习
内容
就是
思路
情况
数据库
数据表
文章
时候
更多
知识
知识点
篇文章
索引
级别
跟着
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网上下载软件的服务器是什么
软件开发IT公司
数据库管理系统怎么分类
软件开发平台 介绍
一早网络技术有限公司
数据库另存为和对象另存为
马士基软件开发
新型网络安全工程师招聘
潼关专业软件开发
FTP服务器软件
软件开发cmmi管理模型
网络安全中属于主动公里的是
华为服务器400
大一网络技术补考是上机操作吗
搭建网络安全体系架构
进口网络安全设备
csgo服务器怎么换地区
数据库系统哈工大战德臣笔记
做了个登录界面怎么绑服务器
央企 软件开发
网络安全监测的重要意义
全国网络安全宣传周什么时间
sql开启服务器管理器
数据库安装好了如何新建
学习网络安全知识的方法
河北省网络安全知识答题
我的世界服务器字体怎么做
玛奇G20 数据库
网络安全产生的主要原因
武汉定制软件开发机构