题记部分

一、什么是ACID

(1)Atomicity 原子性

某个操作,要么全部执行完毕,要么全部回滚。

(2)Consistency 一致性

数据库中的数据全都符合现实世界中的约束,则这些数据就符合一致性。

比如性别的约束男or女,人民币勉之不能为负数,出生地址不能为null,参与转账的账户总余额不变;等等。

(3)Isolation 隔离性

多个事务访问相同数据时,对该数据不同状态的转换对应的数据库操作的执行顺序有一定的规律,彼此不干涉。

(4)Durability 持久性

现实中的状态转换映射到数据库中,意味着对数据所作的修改都应该在磁盘中保存。

二、事务的状态有哪些

三、事务并发时数据一致性问题有哪些

四、脏读

如果一个事务读取到了另一个未提交事务修改过的数据,就意味着发生了脏读现象。

五、不可重复读

如果一个事务修改了另一个未提交事务读取的数据,就意味着发生了不可重复读现象,或者叫模糊读FuzzyRead

六、幻读

如果一个事务先根据某些搜索条件查询了一些记录,但是在记录该事务并未提交时,另一个事务写入了一些符合上面搜索条件的记录(这里的写入可以是insert、delete、update操作。)就意味着发生了幻读现象。

七、事务隔离级别

READ UNCOMMITED:最低的隔离级别,允许读取尚未提交的数据变更。可能导致脏读、不可重复读和幻读。

READ COMMITED:允许读取已经提交的数据。可以避免脏读,但不可重复读和幻读仍有可能发生。

REPEATABLE READ:MySQL默认的隔离级别,确保在同一个事务中多次读取同一个数据时,该数据不会被修改。但在事务进行过程中,其他事务的插入操作可能导致幻读。

SERIALIZABLE:最高的隔离级别,所有的事务都串行化执行,避免了脏读、不可重复读和幻读的问题,但是性能将会大幅下降。

八、隔离级别及事务重要参数查询和设置

(1)查询事务隔离级别:show variables like 'transaction_isolation';

(2)设置事务隔离级别为读提交:set session transaction isolation level read committed;

(3)设置事务隔离级别为可重复读:set session transaction isolation level repeatable read;

(4)查看是否自动提交事务:show variables like 'autocommit';

(5)设置非自动提交事务:set autocommit=0;

— 业精于勤荒于嬉,行成于思毁于随 —

MySQL - [20] 事务的更多相关文章

  1. MySQL 基础 事务

    什么是mysql的事务 MySQL 事务主要用于处理操作量大,复杂度高的数据.简单的说,事务就是一连串的DML的sql语句组合在一起,所以语句执行成功才算成功,如果有语句执行失败,执行就不成功 .比如 ...

  2. mysql 函数 事务

    mysql 中提供了许多内置函数 CHAR_LENGTH(str) 返回值为字符串str 的长度,长度的单位为字符.一个多字节字符算作一个单字符. 对于一个包含五个二字节字符集, LENGTH()返回 ...

  3. Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁

    Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁 一丶安装 pip install PyMySQL 二丶pymysql连接数据库 ### 语法: ...

  4. MySQL的事务和锁

    MySQL的事务和锁   阅读目录 什么是事务 事务:是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作:这些操作作为一个整体一起向系统提交,要么都执行.要么都不执行:事务是一组不可再 ...

  5. 一文读懂MySQL的事务隔离级别及MVCC机制

    回顾前文: 一文学会MySQL的explain工具 一文读懂MySQL的索引结构及查询优化 (同时再次强调,这几篇关于MySQL的探究都是基于5.7版本,相关总结与结论不一定适用于其他版本) 就软件开 ...

  6. MySQL 数据库事务与复制

    好久没有写技术文章了,因为一直在思考 「后端分布式」这个系列到底怎么写才合适. 最近基本想清楚了,「后端分布式」包括「分布式存储」和 「分布式计算」两大类. 结合实际工作中碰到的问题,以寻找答案的方式 ...

  7. Mysql分布式事务

    关于Mysql分布式事务介绍,可参考:http://blog.csdn.net/luckyjiuyi/article/details/46955337 分为两个阶段:准备和执行阶段.有两个角色:事务的 ...

  8. mysql的事务和select...for update

    一.mysql的事务mysql的事务有两种方式:1.SET AUTOCOMMIT=0;也就是关闭了自动提交,那么任何commit或rollback语句都可以触发事务提交;如果SET AUTOCOMMI ...

  9. MySQL的事务

    MySQL的事务 1.事务:事务是由一步或者几步数据库操作序列组成的逻辑执行单元,这一系列操作要么全部执行,要么全部放弃执行. 2.事务具备的四个特性(简称为ACID性): (1)原子性(Atomic ...

  10. mysql 分布式事务

    php + mysql 分布式事务 事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元: 事务应该具有4个属性:原子性.一致性.隔离性.持续性 原子性(atomicit ...

随机推荐

  1. 重建sln的项目层级

    编写包含多个 csproj 的程序时,随着项目数量的持续增加,可能涉及一些文件夹的变动,手动添加项目或者变动会变得非常麻烦,这个时候,可以利用 dotnet cli 帮助我们完成. 如果从零开始,我们 ...

  2. Java调用与发布Webservice接口(一)

    ​ 一  准备工作 (一)开发环境 demo以springboot为基础框架,使用到了httpclient.hutool等依赖,详情如下:         springboot版本: org.spri ...

  3. HBaseIntrospector

    package x;import java.sql.DatabaseMetaData; import java.sql.ResultSet; import java.sql.SQLException; ...

  4. 【Rive】眼睛互动动画

    1 前言 ​ 本文基于 Rive 社区开放的眼睛动画,进一步加工处理,实现更有趣的眼睛互动动画. ​ 原始资源见 → Eye Joysticks Demo,效果如下. ​ 原始资源只有一只眼睛,并且没 ...

  5. 夜莺 v8 第一个版本来了,开始做有意思的功能了

    夜莺 v8 大版本已经启动开发,预计 25 年 7.8 月份发正式版,相比 v7 大概会做四五个大功能,每个功能做完了做稳定了都会提前放出来供大家体验,虽然以 beta 来命名,实际是稳定的,大家可以 ...

  6. 基于极坐标参数方程的直线Hough变换

  7. 揭秘vivo百亿级厂商消息推送平台的高可用技术实践

    本文由vivo 互联网服务器团队Yu Quan分享,本文收录时有内容修订和重新排版. 1.引言 如今,Android端的即时通讯IM这类应用想实现离线消息推送,难度越来越大(详见<Android ...

  8. IM扫码登录技术专题(四):你真的了解二维码吗?刨根问底、一文掌握!

    本文引用了ELab团队.腾讯大讲堂两个公众号分享的文章内容,引用内容见文末参考资料,感谢原作者的无私分享. 1.引言 对于市面上主流的IM来说,跟二维码有关的功能,比如扫码加好友.扫码登陆.扫码加群等 ...

  9. Windows应用开发-常用工具集推荐

     .NET/WPF开发 Visual Studio 最新版本是VS2022,官网下载:Visual Studio 2022 IDE - 适用于软件开发人员的编程工具 VsColorOutput 控制台 ...

  10. 【译】GitHub Copilot Free 在 Visual Studio 中

    可能您还没有听说过,GitHub 刚刚宣布了 Copilot Free(免费版)!好消息是:您现在已经可以在 Visual Studio 中开始使用 Copilot Free 了.它现在已经可用了,我 ...