前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >想要高薪必须具备的MySQL的高级能力之隔离级别及其区别

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

作者头像
用户4919348
发布2022-01-07 10:29:11
4380
发布2022-01-07 10:29:11
举报
文章被收录于专栏:波波烤鸭

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

核心ACID

关键字

作用

原子性

要不全部成功,要不全部失败

一致性

我们的操作对数据库来说是从一个一致性状态编程另外一个一致性状态,不会出现说中间状态不一致的情况

隔离性

我们并行执行的事务之间必须是相互隔离的不能够相互干扰的

持续性

如果事务一旦提交,那么他对数据库的修改是永久性的

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

事务并发

脏读

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

不可重复度

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

幻读

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

幻读2

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

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

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

隔离级别

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

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

隔离级别

说明

read uncommitted

读取未提交的数据(脏读,很少使用)

read committed

读取已经提交的数据(解决了脏读,出现不可重复读)

repeateable read(Mysql 默认)

可重复读(Mysql 默认,为了保证数据库在并发访问的时候,会看到相同的数据行,就会出现(幻读),我们一般通过 innoDb 里边的共享锁和独占锁,还可以通过多版本的并发控制 MVCC 的机制)

Serializable

串行化:严格按照顺序,事务来了乖乖排队,事务的执行,事务在执行的时候,另一个就先挂起,只能等到一个事务结束,另一个才能开启。性能会减低。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/12/15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 核心ACID
  • 事务并发
    • 脏读
      • 不可重复度
        • 幻读
        • 隔离级别
        相关产品与服务
        云数据库 SQL Server
        腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档