测试PG中事务隔离级别

我们知道事务隔离级别有:读未提交,读已提交,可重复读,可序列化。

读未提交 存在 脏读,不可重复读,幻读;

读已提交 存在 不可重复读,幻读

可重复读 存在 幻读

PG 下默认为读已提交,ORACLE默认也是读已经提交,一般很少有人去关注过这个,但在pg,mysql,对这个比较热衷。

先来看看概念:

        脏读:是指在一个事务处理过程里读取了另一个未提交的事务中的数据。 当一个事务正在多次修改某个数据,而在这个事务中这多次的修改都还未提交,这时一个并发的事务来访问该数据,就会造成两个事务得到的数据不一致。

        不可重复读:是指在对于数据库中的某个数据,一个事务范围内多次查询却返回了不同的数据值,这是由于在查询间隔,被另一个事务修改并提交了。 例如事务T1在读取某一数据,而事务T2立马修改了这个数据并且提交事务给数据库,事务T1再次读取该数据就得到了不同的结果,发送了不可重复读。 不可重复读和脏读的区别是,脏读是某一事务读取了另一个事务未提交的脏数据,而不可重复读则是读取了前一事务提交的数据。

      幻读: 是事务非独立执行时发生的一种现象。例如事务T1对一个表中所有的行的某个数据项做了从“1”修改为“2”的操作,这时事务T2又对这个表中插入了一行数据项,而这个数据项的数值还是为“1”并且提交给数据库。而操作事务T1的用户如果再查看刚刚修改的数据,会发现还有一行没有修改,其实这行是从事务T2中添加的,就好像产生幻觉一样,这就是发生了幻读。

我们来准备一个数据张表:

   create table tt(id int);

    当前事务隔离情况:

     

   要修改隔离级别,可以使用 

    

先来测试 读提交 

        1.先进入事务T1 ,T2,两边记录都一样

      2.事务T1插入数据,但不提交,事务T2 看不到

      3.事务T1提交,事务T2,已经能看到

   
 

测试可重复读:

     1.设置隔离级别为可重复读

     

 2. 会话1插入数据,并提交,但会话二不能看到会话一已经提交的数据

        

好了,测试做到这里。

为了方便交流,我建立了一个微信群:水煮数据库,主要交流日常运维中用到的数据库相关问题,包含但不限于:ORACLE,PG,MYSQL,SQLSERVER,OB,TIDB,达梦,TDSQL,OPENGAUSS,人大金仓,GBASE等等,如果有兴趣交流,可以加我微信:zq24803366, 我可以拉你入群。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/cqsztech/article/details/138414459

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/831497.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序使用蓝牙连接硬件

目录 一、蓝牙官方api文档 二、蓝牙重要参数介绍 三、案例教程 1. 获取蓝牙权限(openBluetoothAdapter) 2. 开始搜索蓝牙设备(startBluetoothDevicesDiscovery) 3. 监听搜索到新设备的事件(onBluetoothDeviceFound) 4.连接蓝牙设备(crea…

【RYG】Python技能练习场—查漏补缺(二)

1、PASS关键字 通常用作占位符,表示不执行任何操作,主要用于语法结构中要求有语句的地方,但又不需要做任何实际操作的情况。例如,在定义一个函数或类时,如果暂时不需要写函数体或方法体,可以使用"pas…

SpringData JPA - ORM 框架下,打造高效数据访问层

目录 一、SpringData JPA 概述 1.1、什么是 JPA 1.2、什么是 ORM 1.3、什么是 Hibernate 1.4、JPA 和 Hibernate 的关系 1.5、JPA 的优势 二、SpringData JPA 实战开发 2.1、依赖 2.2、配置文件 2.3、启动类 2.4、创建实体 2.5、基于 JpaRepository 的 CRUD 三、…

网络安全审计

一、什么叫网络安全审计 网络安全审计是按照一定的安全策略,利用记录、系统活动和用户活动等信息,检查、审查和检验操作时间的环境及活动,从而发现系统漏洞、入侵行为或改善系统性能的过程,它是提高系统安全性的重要手段。 系统…

String 最多能存储多少个字符/String 字符串的最大长度/String 字符串有没有长度限制

文章目录 1.编译时字节限制2.运行时长度限制3.小结4.补充 基于 JDK8 进行分析 1.编译时字节限制 String s "11111...1111"; // 其中有 10 万个字符 "1"当我们使用如上形式定义一个字符串的时候,当我们执行 javac 编译时,是会抛出异…

数据结构:时间复杂度/空间复杂度

目录 一、时间复杂度 定义 常见的时间复杂度 如何计算时间复杂度 计算方法 三、实例分析 二、空间复杂度 定义 重要性 常见的空间复杂度 二、空间复杂度 定义 重要性 常见的空间复杂度 计算方法 三、实例分析 大O的渐进表示法 最好情况(Best Case…

Deep Learning Part Eight Attention--24.5.3~24.5.4

注意力是全部。 --(你若安好,就是夏天)安夏的座右铭 00.引子 上一章我们使用 RNN 生成了文本,又通过连接两个 RNN,将一个时序数据转换为了另一个时序数据。我们将这个网络称为 seq2seq,并用它成功求解了简…

spring框架学习记录(1)

前半个月一直在应付期中考试,快被折磨似了orz 文章目录 SpringIoC(Inversion of Control) 控制反转与DI(Dependency Injection)依赖注入bean相关bean配置bean实例化bean的生命周期 依赖注入相关依赖注入方式依赖自动装配 容器创建容器获取bean Spring IoC(Inversi…

leetcode295. 数据流的中位数

class MedianFinder {//A为小根堆&#xff0c;B为大根堆List<Integer> A,B;public MedianFinder() {A new ArrayList<Integer>();B new ArrayList<Integer>();}public void addNum(int num) {int m A.size(),n B.size();if(m n){insert(B,num);int top …

DAY123

将STM32内部的供电方案大致分为3部分&#xff1a; 第一部分&#xff08;最上边的&#xff09;&#xff1a;模拟部分供电&#xff0c;VDDA&#xff08;VDD Analog&#xff09; 这部分电路供电的正极是VDDA&#xff0c;负极是VSSA&#xff0c;其中AD转换器还有两根参考电压的供电…

BeanFactory 源码浅析

BeanFactory 功能介绍 BeanFactory 是核心容器&#xff0c;负责管理 Bean 对象 BeanFactory 接口的功能只有一个 getBean() 方法BeanFactory 的实现类&#xff08;DefaultListableBeanFactory&#xff09;包含&#xff1a;控制反转、基本的依赖注入、Bean 生命周期的各种功能…

从浏览器输入url到页面加载(八)你的web网站有几台服务器?

你有没有想过一个问题&#xff0c;做为一名前端开发&#xff0c;你的网站上线后&#xff0c;准备了几台服务器&#xff1f;前端静态资源用了几台&#xff0c;你调接口的那个后端部署了几台&#xff1f; 目录 1 没接触过这个问题很正常 2 当访问量上升的时候 2.1 提升带宽 …

绝了!这是我见过最详细的HashMap源码解析

1 概述 HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长. HashMap是非线程安全的,只适用于单线程环境,多线程环境可以采用并发包下的concurrentHashMap HashMap 实现了Serializable接口&#x…

五个衰落的编程语言

编程语言为开发人员提供了一种与计算机交互的方式。 然而&#xff0c;随着技术的发展&#xff0c;一些编程语言的使用范围越来越窄&#xff0c;或者被其他语言替代。 本文盘点了五种编程语言&#xff1a;Ruby、Visual Basic、Perl、Delphi和Haskell。 1.Ruby Ruby是一种动态…

2024牛客五一集训派对day2

这套题目我总结一下就是 python嘎嘎乱杀&#xff0c;真的嘎嘎乱杀&#xff0c;我真的长见识了&#xff0c;我真的&#xff0c;真的佩服 A. Groundhog and 2-Power Representatio 链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 Groundhog to…

ArmSoM-Sige5 RK3576开发板 正式发布!

简介​ ArmSoM-Sige5 采用Rockchip RK3576第二代8nm高性能AIOT平台&#xff0c;6 TOPS算力NPU&#xff0c;最大可配16GB大内存。支持8K视频编解码&#xff0c;拥有丰富的接口&#xff0c;支持双千兆网口&#xff0c;WiFi6 & BT5和多种视频输出。支持多种操作系统&#xff…

torch.nn.Module 常见 修改 汇总

1. append new layer/module pytorch中使用add_module添加网络子模块 PyTorch中的Sequential、ModuleList和ModuleDict用法总结

Spark使用Java读取Mysql

在Apache Spark中使用Java来读取MySQL数据库中的数据&#xff0c;你需要使用JDBC&#xff08;Java Database Connectivity&#xff09;来连接MySQL&#xff0c;并且通常你会使用Spark的JdbcRDD或者DataFrameReader&#xff08;通过Spark SQL&#xff09;来读取数据。不过&#…

HTML5实用大全(Part.2)

引言&#xff1a; 哈喽&#xff0c;各位小伙伴们大家好呀&#xff0c;学习了上一篇关于HTML5的文章后&#xff0c;你是否对于入门HTML5有了一定的基础了呢&#xff0c;本篇博客我们将继续学习HTML5的不同标签&#xff0c;跟上队伍&#xff0c;准备出发咯&#xff01; 1.标签之…

2024五一杯数学建模竞赛A题完整成品论文和代码分析:建立钢板切割的工艺路径动态规划、贪心与分层优化模型

2024五一杯数学建模竞赛A题&#xff1a;建立钢板切割的工艺路径动态规划、贪心与分层优化模型 2024五一数学建模A题完整代码和成品论文获取↓↓↓↓↓ https://www.yuque.com/u42168770/qv6z0d/gyoz9ou5upvkv6nx?singleDoc# 本文文章较长&#xff0c;建议先目录。经过不懈的…