mysql事务隔离级别原理

观看了很多网上的博客,挺令人伤心,很难找到想要的答案。。。

一:所需知识

1,mysql中的锁

1.1,读锁(共享锁)

规则:若事务1对数据对象A加上锁,则事务1只能读A;其他事务只能再对A加读锁,而不能加写锁,直到事务1释放A上的读锁。

作用:这就保证了其他事务可以读A,但在事务1释放A上的读锁之前不能对A做任何修改。

1.2,写锁(排他锁)

规则:若事务1对数据对象A加上写锁,则只允许事务1读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到事务1释放A上的锁。

作用:防止任何其它事务读取或修改。

2,事务

MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!

2.1 前提

在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。

2.2 作用

事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。

二:mysql四种隔离级别

隔离级别越高,对应的并发性能越差,数据越安全可靠。

隔离级别由低到高:

1,READ UNCOMMITTED读未提交

未加锁。

READ UNCOMMITTED读未提交问题:可能出现脏读、不可重复读、幻读问题。

脏读概念:

事务读取到其他事务没提交的数据。

例1-----脏读

表格1:

事务1 事务2
Update a set name=‘Shakespeare’ where id=1; //更新数据,但还未提交事务
select * from a where id=1; //读到了未提交的脏数据
Update a set name=‘单边李’ where id=1; commit; //最终修改并且提交事务

脏读解决方案:使用READ COMMITTED级别(行级写锁)。

2,READ COMMITTED读已提交

解决脏读的原理:

​ 表格1中的事务2–

​ 这行数据在写操作的时候,加上行级写锁。即在更新的时候,不允许其他事务读。

READ COMMITTED读已提交问题:可能出现不可重复读、幻读问题。

不可重复读:概念

同一次事务中前后查询不一致。

例2--------不可重复读:表格2中的事务1并没有对数据进行更新操作,预期的数据是不变的,但前后数据不一致。

表格2:

原数据:name为唐寅

事务1 事务2
select * from a where id=1; //第一次查询,name=唐寅
Update a set name=‘单边李’ where id=1; commit; //最终修改并且提交事务
select * from a where id=1; commit;//第二次查询,name=单边李,数据不一致.

不可重复读解决方案:REPEATABLE READ级别(行级读锁、写锁)。

3,REPEATABLE READ可重复读

解决不可重复读的原理:

​ 在表格2中 –

​ 这条数据加上行级读锁、写锁,整个事务1(第一次查询开始到第二次查询结束)结束之后再释放读锁。即两次读的整个过程,不允许其他事务写。

​ 写锁作用:即更新的时候不允许读(解决脏读)

REPEATABLE READ问题:可能出现幻读问题。

幻读概念:

一次事务中前后数据量发生变化,用户产生不可预料的问题。

例3---------幻读

表格3:

事务1 事务2
select * from a where id>1; //第一次查询,10条数据
Insert into a value(99,…); commit; //插入一条新数据,事务2提交
select * from a where id>1; commit; //第二次查询,事务1提交,会发现多一条数据

幻读解决方案:SERIALISABLE级别(表级读、写锁)

4,SERIALISABLE序列化

解决幻读原理:

​ 数据库表加表级的读锁、写锁。即读整张表的时候,不允许其他事务对这张表进行写操作;

​ 写锁作用:表中有写操作的时候,不允许其他事务读。(避免脏读)

mysql事务隔离级别之锁实现原理,脏读、不可重复读、幻读出现原因及解决方案相关推荐

  1. mysql 脏读 不可重复读 幻读_mysql事务隔离级别/脏读/不可重复读/幻读详解

    一.四种事务隔离级别 1.1read uncommitted 读未提交 即:事务A可以读取到事务B已修改但未提交的数据. 除非是文章阅读量,每次+1这种无关痛痒的场景,一般业务系统没有人会使用该事务隔 ...

  2. mysql事务隔离级别与锁_mysql事务隔离级别与锁

    2.隔离级别实现 上一节介绍了ANSI定义的3种异象,及根据禁止异象的个数而定义的事务隔离级别.因为不存在严格.严谨的"官方"定义,各主流 2.1 Lock-based 隔离级别实 ...

  3. mysql不可重复读和重复读_MySql隔离级别:RU / RC / RR / S + 脏读 / 不可重复读 / 幻读 / 可重复读...

    MySQL 事务 本文所说的 MySQL 事务都是指在 InnoDB 引擎下,MyISAM 引擎是不支持事务的. 数据库事务指的是一组数据操作,事务内的操作要么就是全部成功,要么就是全部失败,什么都不 ...

  4. mysql 事务隔离级别实现原理_MySQL事务隔离级别和实现原理 - 米扑博客

    开发中经常提到数据库的事务,那你知道数据库还有事务隔离的说法吗, 事务隔离还有隔离级别,那什么是事务隔离,隔离级别又是什么呢? MySQL 事务 本文所说的 MySQL 事务都是指在 InnoDB 引 ...

  5. 上个厕所的功夫,搞懂MySQL事务隔离级别,Java学习视频百度云盘

    | 14 | 朱志鹏 | 男 | 25 | 技术1部 | 5000 | 看小说 | | 19 | 李昂 | 男 | 27 | 技术1部 | 7000 | 看片儿 | ±-±----------±--- ...

  6. 上个厕所的功夫,搞懂MySQL事务隔离级别

    "隔离级别" 出于MySQL四大特性(ACID)中的"I",也就是隔离性.目的是实现数据.事务一致性"C". MySQL在多线程并发场景下, ...

  7. 从实际蹲坑中涨姿势之——彻底搞懂Mysql事务隔离级别

    一.业务背景 最近在做一个类似于任务分发的平台,分为任务管理平台和作业机,任务管理平台负责接收作业机的请求,并为作业机分配任务,所有的任务都存在表t_task_info,其使用一个字段task_sta ...

  8. mysql事务隔离级别 花_MySQL事务的隔离级别

    为什么要有事务? 当需要对一个数据表进行一系列多个操作的情况下,为了防止这些操作中一部分操作成功,而另一部分操作失败,从而导致数据不正确,我们就需要事务来控制了. 当两个人或者多个人同时操作同一条数据 ...

  9. MySQL事务隔离级别和Spring事务关系介绍

    事务隔离级别介绍 隔离级别 脏读 不可重复读 幻读 未提交读(Read uncommitted) 可能 可能 可能 已提交读(Read committed) 不可能 可能 可能 可重复读(Repeat ...

最新文章

  1. 2018/8/24阅读文献 A Unified Model for Multi-Objective Evolutionary Algorithms with Elitism
  2. java 的lambda表达式
  3. Linux内核tcp时间测量,linux内核 – 测试linux内核中函数的执行时间
  4. 32位hex转浮点 python_python——int()、hex()、oct()、bin()、float()数值类型转换函数
  5. 系统架构设计师考试4
  6. 文件存储,块存储,对象存储的区别
  7. docker 制作本地镜像_Docker系列-(2) 镜像制作与发布
  8. 如何制作一个商城小程序?
  9. 黑灰产眼中的NFT:平台嗷嗷待宰,用户送钱上门
  10. 交换机和路由器的基本命令
  11. MailConnectException: Couldn‘t connect to host
  12. OBS studio
  13. 优化-处理大量定时任务的思路
  14. Fone Keeper Mac版,帮你轻松恢复iOS数据
  15. R语言使用na.omit函数删除向量数据中的缺失值(NA值)
  16. SSM框架实现后台管理系统权限管理(用户、菜单、角色)
  17. 2022年全球市场机器视觉频闪仪总体规模、主要生产商、主要地区、产品和应用细分研究报告
  18. USB HUB(FE1.1S)电路
  19. 怎么让自己的网站在百度搜索中带图片显示
  20. 鸿蒙手机摄影,鸿蒙系统正式亮相 华为:手机随时可以使用

热门文章

  1. 类似蘑菇街、迷尚的流瀑布图片展示Demo
  2. 如何让更多游客参与到景区夜游光影秀
  3. 关于archlinux的安装
  4. P1914 小书童——密码
  5. QT学习日志(附:简易计算器,qq登录界面,简易绘图板,植物大战僵尸魔改版项目实践)
  6. 好用的小工具(二):网站权重查询小工具
  7. Wireshark3.4.8安装s7comm-plus插件
  8. 分享一次RPA---影刀对手机自动化操作的探索
  9. Double precision
  10. 2022年全球安全访问服务边缘行业分析报告