shell中执行某条语句失败能不能重复执行_如何理解Mysql中的事务隔离级别?

7c8277891455440453b2c9a2971250f8.png

要说清楚Mysql中的事务隔离级别,我们先从事务的定义说起。事务,是一个或一组sql语句组成的一个执行单元,这个执行单元要么全部执行,要么全部不执行。整个单独单元作为一个不可分割的整体,如果单元中某条sql语句一旦执行失败或产生错误,整个单元将会回滚。所有收到影响的数据将返回到事务开始以前的状态;如果单元中的所有sql语句均执行成功,则事务被顺利执行。

事务有4个属性,即ACID属性

1. 原子性(Atomicity)

原子性是指事务是一个不可分割的工作单元,事务中的操作要么都发生,要么都不发生。

2. 一致性(Consistency)

事务必须使数据库从一个一致性状态变换到另一个一致性状态。

3. 隔离性(Isolation)

事务的隔离性是指一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。

4. 持久性(Durability)

持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来的其他操作和数据库故障不应该对其有任何影响。

对于同时运行的多个事务,当这些事务访问数据库中相同的数据时,会有可能发生一下的问题:

脏读:对于两个事务T1、T2,T1读取了已经被T2更新但还未提交的字段,若T2回滚,T1读取的内容就是临时且无效的。

不可重复度:对于两个事务T1、T2,T1读取了一个字段,然后T2更新了该字段之后, T1再次读取同一个字段,值就不同了。

幻读:对于两个事务T1、T2,T1从表中读取了一个字段,然后T2在该表中插入了一些新的行之后,如果T1再次读取同一个表,就会多出几行。

因此,Mysql定义了四种隔离级别,分别解决以上发生的问题。好,我们通过例子来分别演示着4种隔离级别。

一个事务包括开始事务、执行事务、结束事务

开启事务:set auto committed = 0

结束事务:commit/rollback

执行事务:一串sql语句。

假设原始表为:

17eefd7a16c53412a37276317ef69175.png

读未提交:允许事务读取未被其他事务提交的变更,脏读、不可重复读和幻读的问题都会出现。

用户A:

1f01118dd79387358097410cdadae539.png

用户B:

afdd51760a992a0d72a860c0eef41d05.png

此时B在脏读。

读已提交:只允许事务读取已经被其他事务提交的变更,可以避免脏读,但不可重读和幻读问题仍然可能出现。

用户A:

1c903c7ebc718a4feee41f1835eb2dee.png

用户B:

0b938246319a1ff5482bc3823af7f3a0.png

此时B只读已提交的数据,但是用户A提交了,B再读一次的数据和上一次不一致,不可重复读的问题依然存在。

可重复读:确保事务可多次从一个字段中读取相同的值。但幻读问题依然存在。

用户A:

665ece46639f25b8ef918275e452b8d5.png

用户B:

38d6d1b30008dc433af599062a4d2e78.png

此时B读取的两次数据都一致,说明可重复读。

串行化:在事务持续期间,禁止其他事务对该表进行插入、更新和删除,所有问题都可以避免,但性能十分地下。

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

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

相关文章

oracle 试图访问已经在使用的事物处理临时表,解决ORA-14450:试图访问已经在使用的事务处理临时表...

在开发使用过程中,一个存储过程用到表TMP_DA_GMS,允许程序的时候报错,后台查询到错误原因是因为表里有个字段需要设置为可以为N在开发使用过程中,一个存储过程用到表TMP_DA_GMS,允许程序的时候报错,后台查询到错误原因是因为表里有…

linux 下环境变量设置

Ubuntu Linux系统包含两类环境变量:系统环境变量和用户环境变量。系统环境变量对所有系统用户都有效,用户环境变量仅仅对当前的用户有效。 修改用户环境变量 用户环境变量通常被存储在下面的文件中: ~/.profile ~/.bash_profile 或者 ~./bas…

《数字孪生体技术白皮书(2019)》(简版)全文

来源:《数字孪生体实验室原创》12月27日,数字孪生体实验室与安世亚太联合正式发布了《数字孪生体技术白皮书(2019)》。白皮书的第一部分关注对数字孪生体的抽象和总结。无论是参考架构、成熟度模型还是关键技术,都以“…

oracle批量构造数据,oracle批量构造数据方法 - rd_clp的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

1.一种是只要数据条数,至于里面内容可以是序列方式,另外可能几个表中相互id的关联,那建议用存诸过程写.表a(id,name)有学员的信息表b(id,testid,subject,score)有学员的考试成绩假设表a与表b的id都是有seq的自增长系列;表b.testid…

sql 删除字段中下划线_SQL基础教程知识点总结

1. ●列 ●字段 ●行 ●记录 2. SQL 语句及其种类 DDL DDL(Data Definition Language,数据定义语言)用来创建或者删除存储 数据用的数据库以及数据库中的表等对象。DDL 包含以下几种指令。 CREATE:创建数据库和表等对象 DROP: 删除数据库和表等对象 ALTER: 修改数据…

代码实现从键盘接收一个字符串, 程序对其中所有字符进行排序,例如键盘输入: helloitcast程序打印:acehillostt...

package com.loaderman.test;import java.util.Comparator; import java.util.Scanner; import java.util.TreeSet;public class Test {/*** 从键盘接收一个字符串, 程序对其中所有字符进行排序,例如键盘输入: helloitcast程序打印:acehillostt* 分析:* 1,键盘录入字符串,Scann…

王恩东院士:AI计算是未来的核心生产力

来源:蓝海长青智库12月27日,以“超算无界、智创未来”为主题的2019国际超级计算产业博览会在济南召开。中国工程院院士、浪潮集团首席科学家王恩东在大会发表《智慧计算 未来动力》主题演讲。王恩东指出,人工智能正在驱动前所未有的社会变革&…

php 501解决办法,PHP 使用错误处理解析

这篇文章主要为大家详细介绍了PHP 使用错误处理解析,具有一定的参考价值,可以用来参考一下。对使用PHP的错误处理感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧!在web 上所有常见的错误之一就是无效的链接。一旦从其它…

“阿基里斯与乌龟”的终结性思考

“阿基里斯与乌龟”是公元前五世纪古希腊芝诺提出的悖论,想必大家都已耳熟能详了。 乌龟只要还在阿基里斯前头,那么阿基里斯是一直处于追的状态,换句话说在这种状态下他一直没追上。 哪怕乌龟的领先优势越来越小,直至很小&#xf…

指纹识别 python_python 网站指纹识别

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台&…

Linux系统常用函数,浅谈linux下的一些常用函数的总结(必看篇)

1.exit()函数exit(int n) 其实就是直接退出程序,因为默认的标准程序入口为int main(int argc, char** argv),返回值是int型的。一般在shell下面,运行一个程序,然后使用命令echo $?就能得到该程序的返回值,也就是退出…

​采访了14位技术公司的创始人,他们如何看待2020年的AI行业?

来源:KDnuggets编译:木槿、张大笔茹、楚阳科幻元年2020年马上就要来了。对于技术行业来说,这一年会有哪些值得期待的变化?KDnuggets采访了14位科技前沿的技术公司创始人,并汇总了他们眼中的2020年:关于人工…

前端编程基础

网页前端编程基础 HTML 是用来描述网页的一种语言。HTML 指的是超文本标记语言 (Hyper Text Markup Language)HTML 不是一种编程语言&#xff0c;而是一种标记语言 (markup language)标记语言是一套标记标签 (markup tag)HTML 使用标记标签来描述网页<html> <body>…

spark sql合并小文件_Spark SQL小文件问题在OPPO的解决方案

Spark SQL小文件是指文件大小显著小于hdfs block块大小的的文件。过于繁多的小文件会给HDFS带来很严重的性能瓶颈&#xff0c;对任务的稳定和集群的维护会带来极大的挑战。一般来说&#xff0c;通过Hive调度的MR任务都可以简单设置如下几个小文件合并的参数来解决任务产生的小文…

linux脚本 scp 管道,scp命令详解(全)

svn 删除所有的 .svn文件find . -name .svn -type d -exec rm -fr {} \;linux之cp/scp命令&#xff0b;scp命令详解名称&#xff1a;cp使用权限&#xff1a;所有使用者使用方式&#xff1a;cp [options] source destcp [options] source... directory说明&#xff1a;将一个档案…

白春礼:探究物质世界奥秘的一把金钥匙——纪念元素周期表发表150周年

来源&#xff1a;中国科学报联合国大会宣布2019年为国际化学元素周期表年&#xff0c;旨在纪念俄罗斯化学家门捷列夫在150年前发表元素周期表这一科学发展史上的重大成就。世界万物是由什么最基本的物质构成的&#xff1f;这些最基本的物质又是怎样变成万物世界的&#xff1f;这…

莫名的证书错误...ERROR ITMS-90035:Invalid Signature.

请删除 .DS_Store 这种类似的文件再尝试转载于:https://www.cnblogs.com/decode1234/p/6529601.html

linux里工作目录的字体变蓝,netterm访问Linux时字体和背景颜色随目录发生改变的问题解决...

方法很多&#xff0c;除了改用其他仿真终端程序外&#xff0c;继续使用netterm可用下面方法解决。方法1&#xff1a;修改netterm参数&#xff0c;最简单选项-->屏幕颜色-->允许图形编译码 重置颜色至默认值点选上&#xff0c;见下图&#xff1a;这种方法的最大特点是目录…

因果关系:真的存在吗?

来源&#xff1a;白驹静夜思学图灵奖获得者、贝叶斯网络之父 Judea Pearl 和他的同事在 2018 年完成了的著作《The Book of Why: The New Science of Cause and Effect》&#xff08;中文名《为什么》&#xff09;中认为&#xff1a;机器学习不过是在拟合数据和概率分布曲线。变…

ThinkPhp知识大全(非常详细)

php框架 发瑞 一、真实项目开发步骤&#xff1a; 多人同时开发项目&#xff0c;协作开发项目、分工合理、效率有提高&#xff08;代码风格不一样、分工不好&#xff09;测试阶段上线运行对项目进行维护、修改、升级&#xff08;单个人维护项目&#xff0c;十分困难&#xff…