| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> MySQL的事务是什么?并发事务带来的问题 -> 正文阅读 |
|
[大数据]MySQL的事务是什么?并发事务带来的问题 |
一.MySQL的事务是什么? ? ? ? 事务就是将一组sql语句放在同一批次去执行,如果一条语句出错则该批次内所有 语句都取消 ? ? ? a:原子性? ? ? ? 事务中的语句要么都执行成功,要么都不执行 ? ? ??b:一致性? ? ? ? 即事务开始之前和事务结束以后,数据库的完整性约束没有被破坏 ? ? ? c:隔离性? ? ? ? 事务之间的执行是互不干扰的 ? ? ? d:持久性? ? ? ? 事务完成以后,该事务对数据库的更改会持久的保存在数据库之中,不会被回滚 二.实现事务的方法? ? ? ? a:先关闭mysql的自动提交?? ? ? ? ????????SET AUTOCOMMIT=0; ? ? ? ? b:开启一个事务,标记事务的起点? ? ? ? ? ? ? ? START? TRANSACTION; ? ? ? ? c:向数据库提交数据 或者 回滚? ? ? ? ? ? ? ? COMMIT;? ?#提交数据(结束了事务) ? ? ? ? ? ? ? ? ROLLBACK:#事务回滚,回到事务开启之前的数据(结束了事务) ? ? ? ? d:开启mysql自动提交?????????????????SET AUTOCOMMIT=1; 三.隔离级别? ? ? ? mysql中的四个隔离级别 ? ? ? ? 在mysql8中查看事务隔离级别的语句是 ? ? ? ? ? ? ? ? 下图的查询的结果,可以看到在mysql8中事务的隔离级别默认是可重复读 ????????? ? ? ? ? ? a:READ-UNCOMMITTED读取未提交的????????????????最低的隔离级别,允许读取尚未提交的数据变更,可能造成脏读、不可重复读、幻读 ? ? ? ? b:READ-COMMITTED读提交????????????????允许读取并发事务已经提交的数据,可以避免脏读,但是可能造成不可重复、幻读。 ? ? ? ? c:REPEATABLE-READ可重复读????????????????对同一字段多次读取的结果都是一致的,除非本身事务修改,可以避免脏读和不可重复读,但是可能造成幻读 ? ? ? ? d:SERIALIZABLE可穿行化的????????????????最严格的隔离级别,相当于对事物读操作,写操作都上锁所以的事务依次执行,可以避免脏读、不可重复读、幻读。但是高并发下效率最低。 四.并发事务带来的问题? ? ? ? 可以看出不同的隔离级别在高并发操作下会带来不同的问题,所以我们在修改隔离级别时要根据自身需求,选择最合适的方案 ? ?a:脏读? ? ? ? ? ? ? ?简言之就是一个事务可以读取到另一个事务没有提交的数据,由于某些原因这条没有提交的数据执行了Rollback,那么这个事读取到的数据就是不正确的。 ? ?b:幻读????????????????一个事务内两次读到的同一条件数据的(行数)结果不同,好像出现了幻觉。比如一个事务在做对全部数据的统一修改操作,与此同时第二条事务也对此表进行插入一条新数据,那么在第一个事务在后面就会发现还有未修改的数据。 ? ?c: 不可重复度? ? ? ??????????一个事务两次读到的同一条件数据的(内容)结果不同。比如在一个事务内,两次读同一数据。在第一次读完之后但是事务还没有结束时,另外一个事务也访问并修改同一数据。那么,在第一个事务中的第二次读数据时数据可能是不一样的。 ? ? ? ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 9:33:59- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |