栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

想要高薪必须具备的MySQL的高级能力之隔离级别及其区别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

想要高薪必须具备的MySQL的高级能力之隔离级别及其区别

  本文来给大家介绍下MySQL中的隔离级别,事务是应用程序中一系列严谨的操作,所有的操作必须是成功完成的。否则在每个操作中所做的所有事情都会被撤销。

核心ACID
关键字作用
原子性要不全部成功,要不全部失败
一致性我们的操作对数据库来说是从一个一致性状态编程另外一个一致性状态,不会出现说中间状态不一致的情况
隔离性我们并行执行的事务之间必须是相互隔离的不能够相互干扰的
持续性如果事务一旦提交,那么他对数据库的修改是永久性的

  当我们的系统故障导致的一些问题,它的执行结果它是不会收到任何影响的。这是事务的四个特性。

事务并发 脏读

  事务 A 读取了 事务 B 提交的数据,但是事务 B 回滚了。

不可重复度

  事务A在多次读取同一条数据的时候,如果事务 B 在事务 A 读取数据的过程中对数据做了一个过呢更新,并且提交,导致 A 多次读取的结果是不一致的,

幻读

  事务在并发访问执行的情况下,它会有一个事务并发的问题。
幻读1

幻读2

不可重复读和幻读有相似的点:

  • 不可重复度侧重的是修改
  • 幻读侧重的是新增和删除

  SQL 的标准定义了四种隔离级别
  限定了事务的操作哪些情况下是可见的,哪些情况下是不可见的。我们通过约束解决我们所存在的问题。

隔离级别

  就像我们讲过的,栅栏、屏障,隔离就是隔离开我们事务的影响

  隔离级别越高的话,安全性越高,但是它的并发行越低,如果反之的话,并发行越高,数据安全性越低。
以 Mysql 为例四种隔离级别

隔离级别说明
read uncommitted读取未提交的数据(脏读,很少使用)
read committed读取已经提交的数据(解决了脏读,出现不可重复读)
repeateable read(Mysql 默认)可重复读(Mysql 默认,为了保证数据库在并发访问的时候,会看到相同的数据行,就会出现(幻读),我们一般通过 innoDb 里边的共享锁和独占锁,还可以通过多版本的并发控制 MVCC 的机制)
Serializable串行化:严格按照顺序,事务来了乖乖排队,事务的执行,事务在执行的时候,另一个就先挂起,只能等到一个事务结束,另一个才能开启。性能会减低。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/666392.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号