事务相关、不可重复读与幻读的区别

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

事务内嵌套事务:
  1) 都用spring事务时,取决spring采用的事务的隔离级别。
    这个默认隔离级别是与具体的数据库相关的,采取的是具体数据库的默认隔离级别,不同的数据库是不一样的。
    如是同一事务,事务有传播性:
    在有事务的方法A内执行修改,再于A内调用有事务的方法B执行修改同一字段,
    B用的是A的事务,可以拿到A手中的写锁,2次修改都执行成功。 
  2) 如果方法A用spring的事务,方法B用代码事务,是2个不同事务。
  3) 在主线程中开子线程,并分别在主、子线程中执行修改,则是2个不同事务,
  4) 只要是2个不同的事务,就会造成写锁等待。
    只有当先拿到写锁的修改方法的事务提交或回滚后,另一个线程的修改方法才能拿到写锁,第2次修改才能执行。
  
  5) 另外:read-only只读事务作用:多条查询SQL必须保证整体的读一致性,
    否则,在前条SQL查询之后,后条SQL查询之前,数据被其他用户改变,
    则该次整体的统计查询将会出现读数据不一致的状态,此时,应该启用只读事务支持
    
  6) 事务ACID四个属性;
    原子性(atomicity)、一个事务是一个不可分割的工作单位,事务中包括的操作要么都做,要么都不做。
    一致性(consistency)、事务必须是使数据库从一个一致性状态变到另一个一致性状态。
                          比如:A扣款了,B就收款了。
    隔离性(isolation)、一个事务的执行不能被其他事务干扰,并发执行的各个事务之间不会互相干扰。
    持久性(durability)、指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。
                          接下来的其他操作或故障不应该对其有任何影响。
                          
  7) 默认隔离级别: Read Commited--------Sql Server、Oracle. 
                  Repeatable Read ------- MySQL 、InnoDB存储引擎 
                  
                  read committed:开启一个事务,读一个数据,而后再次读,这2次可能不一样的,
                    因为在这2次读之间可能有其他事务更改这个数据,这也就是读提交,
                    每次读到的数据都是已经提交的(行级锁,不锁间隙)。
                  read repeatable:开启一个事务,读一个数据,而后再次读,这2次读的数据是一致的(行级锁且是锁间隙);
               
  8) 不可重复读与幻读的区别:
    不可重复读的重点是修改,同样的条件,你读取过的数据,再次读取出来发现字段值不一样了。
    幻读的重点在于新增或者删除,同样的条件,第 1 次和第 2 次读出来的记录总条数不一样。
  

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

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

相关文章

onload事件

onload事件它只支持少量标签<body>, <frame>, <iframe>, <img>, <input type"image">, <link>, <script>, <style> 不支持<div>,<p>标签等 所以&#xff0c;在div使用onload事件时该怎么办呢。。。转载…

Eclipse GBK批量转UTF-8插件(转)

最近需要把Android项目转Android Studio&#xff0c;由于之前是eclipse开发&#xff0c;而且坑爹的是编码还是GBK的&#xff0c;转到Android Studio中文都是乱码&#xff0c;如果一个文件一个文件ctrlc的话&#xff0c;想想就累&#xff0c;几经Google&#xff0c;发现一个很好…

网络爬虫--15.【糗事百科实战】多线程实现

文章目录一. Queue&#xff08;队列对象&#xff09;二. 多线程示意图三. 代码示例一. Queue&#xff08;队列对象&#xff09; Queue是python中的标准库&#xff0c;可以直接import Queue引用;队列是线程间最常用的交换数据的形式 python下多线程的思考 对于资源&#xff0…

浅谈:国内软件公司为何无法做大做强?

纵览,国内比较大的软件公司(以下统一简称"国软"),清一色都是做政府项目的(他们能做大的原因我就不用说了吧),真正能做大的国软又有几家呢?这是为什么呢? 今天风吹就给大家简单分析下: 1."作坊"式管理 "作坊"往往是效率最高的,国软几乎都是从作…

Java SE、Java EE、Java ME三者的区别

说得简单点 Java SE 是做电脑上运行的软件。 Java EE 是用来做网站的-&#xff08;我们常见的JSP技术&#xff09; Java ME 是做手机软件的。 1. Java SE&#xff08;Java Platform&#xff0c;Standard Edition&#xff09;。Java SE 以前称为 J2SE。它允许开发和部署在桌面、…

FileBeats安装

FileBeats安装 FileBeats官方下载链接&#xff1a; https://www.elastic.co/downloads/beats/filebeat 也可以直接使用以下命令下载&#xff08;文章下载目录一概为/home/tools, 解压后文件夹放到 /home/apps下&#xff09; wget https://artifacts.elastic.co/downloads/beats…

《程序员代码面试指南》第三章 二叉树问题 二叉树节点间的最大距离问题

题目 二叉树节点间的最大距离问题 java代码 package com.lizhouwei.chapter3;/*** Description:二叉树节点间的最大距离问题* Author: lizhouwei* CreateDate: 2018/4/16 19:33* Modify by:* ModifyDate:*/ public class Chapter3_20 {public int maxDistance(Node head) {int[…

MySQL中函数CONCAT及GROUP_CONCAT 对应oracle中的wm_concat

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 一、CONCAT&#xff08;&#xff09;函数 CONCAT&#xff08;&#xff09;函数用于将多个字符串连接成一个字符串。 使用数据表Info作为…

网络爬虫--16.BeautifulSoup4

文章目录一. BeautifulSoup4二. 解析实例三. 四大对象种类1. Tag2. NavigableString3. BeautifulSoup4. Comment四. 遍历文档树1.直接子节点 &#xff1a;.contents .children 属性1). .contents2). .children2. 所有子孙节点: .descendants 属性3. 节点内容: .string 属性五. …

Intel MKL 多线程设置

对于多核程序&#xff0c;多线程对于程序的性能至关重要。 下面&#xff0c;我们将对Intel MKL 有关多线程方面的设置做一些介绍&#xff1a; 我们提到MKL 支持多线程&#xff0c;它包括的两个概念&#xff1a; 1>MKL 是线程安全的&#xff1a; MKL在设计时&#xff0c;就保…

【LA3415 训练指南】保守的老师 【二分图最大独立集,最小割】

题意 Frank是一个思想有些保守的高中老师。有一次&#xff0c;他需要带一些学生出去旅行&#xff0c;但又怕其中一些学生在旅行中萌生爱意。为了降低这种事情发生的概率&#xff0c;他决定确保带出去的任意两个学生至少要满足下面四条中的一条。 1.身高相差大于40厘米 2.性别相…

行车记录仪稳定方案:TC358778XBG:RGB转MIPI DSI芯片,M-Star标配IC

原厂&#xff1a;Toshiba型号&#xff1a;TC358778XBG功能&#xff1a;TC358778XBG是一颗将RGB信号转换成MIPI DSI的芯片&#xff0c;最高分辨率支持到1920x1200&#xff0c;其应用图如下&#xff1a;产品特征&#xff1a;MIPI接口&#xff1a;&#xff08;1&#xff09;、支持…

java.sql.SQLException: 无法转换为内部表示之解决

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 这个错是因为 数据库中字段类型和程序中该字段类型不一致。 比如程序将某字段当做Integer类型&#xff0c; 而数据库存储又使用另外一…

网络爬虫--17.【BeautifuSoup4实战】爬取腾讯社招

文章目录一.要求二.代码示例一.要求 以腾讯社招页面来做演示&#xff1a;http://hr.tencent.com/position.php?&start10#a 使用BeautifuSoup4解析器&#xff0c;将招聘网页上的职位名称、职位类别、招聘人数、工作地点、发布时间&#xff0c;以及每个职位详情的点击链接…

public static void main(String[] args)的理解

public:权限修饰符&#xff0c;权限最大。static:随着MianDemo类的加载而加载&#xff0c;消失而消失。void: 没有返回值main: 函数名&#xff0c;jvm识别的特殊函数名(String[] args):定义了一个字符串数组参数。这个字符串数组是保存运行main函数时输入的参数的

Miller-Rabin素数测试

Miller-Rabin素数测试 给出一个小于1e18的数&#xff0c;问它是否为质数&#xff1f;不超过50组询问。hihocoder 我是真的菜&#xff0c;为了不误导他人&#xff0c;本篇仅供个人使用。 首先&#xff0c;一个1e18的数&#xff0c;朴素\(O(\sqrt{n})\)素数判定肯定爆炸。怎么办呢…

throws Exception的意思

在方法声明部分使用&#xff0c;表示该方法可能产生此异常&#xff0c;如果在方法声明处使用了throws声明异常&#xff0c;则该方法产生异常也不必捕获&#xff0c;会直接把异常抛出到调用该方法的地方。

java list按照元素对象的指定多个字段属性进行排序

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 直接提取重点代码&#xff1a; /*** 把结果集合按时间字段排序&#xff0c;内部类重写排序规则&#xff1a;* param list* return*/priv…

网络爬虫--18.python中的GIL(全局解释器锁)、多线程、多进程、并发、并行

参考文献&#xff1a; python的GIL、多线程、多进程 并发和并行的区别&#xff1f; GIL(全局解释器锁)一看就懂的解释&#xff01; 多谢作者分享&#xff01;

Socket和ServerSocket

对于即时类应用或者即时类的游戏&#xff0c;HTTP协议很多时候无法满足于我们的需求。这会&#xff0c;Socket对于我们来说就非常实用了。下面是本次学习的笔记。主要分异常类型、交互原理、Socket、ServerSocket、多线程这几个方面阐述。异常类型在了解Socket的内容之前&#…