ACID:保证数据库事务的完整性提出的理论。

A(Atomicity):原子性,一个事务要一起完成,要么一起失败,不能因为中途一些错误导致数据一部分写入成功,一部分写入失败,失败就要回滚。

C(Consistency):一致性,指的是数据状态一致性,就比如一次性操作三个数据状态为1的数据,给他们加2,一致性就代表三个数据都要等于3,如果一个等于3,二个还等于1就是违反一致性。

I(Isolation):隔离性,指的是事务之前的隔离性,比如A事务和B事务同时在运行,它们直接不能产生联系和影响,不然就是违反隔离性,隔离性产生如下四种隔离级别:

1.读未提交:很好理解,就是A事务和B事务都在操作数据,A操作一个字段的数字不停的叠加叠加,B正好也在操作,这个时候B就能读取到A叠加且未提交的数据,要点就在于事务中的数据在事务未提交的时候也可以被读取到。

2.读已提交:很好理解,与读未提交相反,读取的数据一定是其他的事务提交过后的数据,没提交的不会被读取到。

3.可重复读:指的是在事务开始前我读取了数据A等于1,那在本事务的后续读取A的过程中他的值还是A,这样子就避免了脏读(读取到读未提交又发生了回滚的数据)和不可重复读(第一次和第二次读取的数据不一致)的问题,但是就会产生幻读(提交前查到数据是A,提交后查到是B)的问题,具体解决幻读的方案可以查询Mysql的解决方案作为参考。

4.串读:安全级别最高也是效率最低的方案,就是必须让事务排队操作,A操作完B才能操作,不能采用高效率的多线程或者并发操作。

D(Durability):持久性,很好理解了,就是数据一旦提交就比如实现持久化了,继续后续系统发生了故障、断电断网数据都不会丢失。

总结:

1.我们以Mysql数据库的InnoDB的隔离级别可重复读来做一个扩展,InnoDB是怎么解决幻读的了,第一个是gap锁,就是写的锁,比如A写入id = 1,3,4这三条数据的时候会给这三条数据加锁,B想写入就会阻塞,第二个就是快照度和当前读的两个问题了,快照读很好理解,就是我读取的是啥我写入的时候就按我们读取的写入,当前读就是我当前读取的多少就写入多少,快照读因为MVCC(版本号)能解决幻读的问题,因为是我读取了多少我就修改了多少,但是在当前读的情况下next-key间隙锁来解决幻读问题,总结的内容可能不是太恰当,有不同想法的可以留言。

ACID讲解,ACID简介相关推荐

  1. ACID与ACID原则

    ACID,指数据库事务正确执行的四个基本要素的缩写.包含:原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持久性(Durability).一个支持事务(T ...

  2. acid php5,ACID原则

    [原子性] 整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节.事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样. [ ...

  3. 同一个事务里面对同一条数据做2次修改_[玩转MySQL之九]MySQL事务ACID[2-1]ACID详解...

    一. 引言 做数据库相关工作的同学都知道事务,就是一个操作序列 ,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位, ACID又是事务的四大特性. 那么就会有如下疑问: ACID具体代表什 ...

  4. AutoSAR配置视频讲解:简介

    AutoSAR实验视频讲解:闪烁一颗LED实验[简介] 下一篇 | 总目录 大家好,欢迎来到雪云飞星的<AutoSAR实验课的视频讲解>专栏.看过<AutoSAR入门到精通系列讲解& ...

  5. labview曲线拟合讲解_LABVIEW简介与曲线拟合应用程序初步设计.pptx

    LABVIEW简介及应用程序初步设计;虚拟仪器是随着计算机技术.现代测量技术发展起来的新型高科技产品,代表着当今仪器发展的一个新方向;本论文的主要目的就是初步向大家介绍LABVIEW软件,希望引起同学 ...

  6. Base:一种 Acid 的替代方案

    原文链接: BASE: An Acid Alternative 数据库 ACID,都不陌生:原子性.一致性.隔离性和持久性,这在单台服务器就能搞定的时代,很容易实现,但是到了现在,面对如此庞大的访问量 ...

  7. 分布式事务系列一:BASE,一种ACID的替代方案(eBay分布式事务解决方案)

    前言 对于很多业务系统来说,整个系统其实是由多个独立的系统构成的.这些独立的系统由各自的研发小组进行研发和维护,数据往往也存储在各自独立的数据库中. 我们以下单流程为例.下单往往涉及到订单系统.库存系 ...

  8. CAS:1214891-99-2,BHQ猝灭剂BHQ-2 acid ,BHQ-2 Carboxylic Acid

    名称 BHQ-2 Carboxylic Acid Black Hole Quencher-2 acid BHQ-2 acid BHQ-2 COOH CAS 1214891-99-2 外观 深紫色粉末 ...

  9. 1148026-99-6,Bromo-PEG3-phosphonic acid,Bromo-PEG3-C2-phosphonic acid,PEG连接剂

    英文名称:Bromo-PEG3-phosphonic acid Bromo-PEG3-C2-phosphonic acid 分子式:C8H18BrO6P 分子量:321.1 CAS:1148026-9 ...

最新文章

  1. Kafka工作原理简要概述
  2. 二、数据分析前,打下数据处理基础(上)
  3. Java基础:HashMap的用法
  4. csdn中一篇sock 经验贴..
  5. No module named 'ConfigParser'
  6. CSS框模型,浮动,定位以及其他属性
  7. 简单php文件编写语法
  8. 《Linux命令行与shell脚本编程大全》 第一、二章 学习笔记
  9. 使用手机访问vue项目
  10. 用python编写一个点餐程序_用python写一个 点餐代码--急急急 !!! 希望高人帮忙!...
  11. 路由器网络性能测试软件,路由器压力测试工具 路由器UDP攻击软件 路由器性能测试...
  12. 如何用Java的Robot完成模拟鼠标移动和键盘输入(可应用刷网课)
  13. 2018年的43个最佳网络监控工具
  14. RGB颜色查询对照表
  15. html 实现复制功能
  16. 云服务器ECS/EC2_转载
  17. CentOS 7设置获取动态及静态IP地址方法
  18. 大学物理复习--变化的电磁场
  19. php 爬取股票数据库,【实例】--股票数据定向爬取
  20. PEDOT:PSS/甘油酸胆碱([Ch][Glyce])离子液体混合材料

热门文章

  1. PHP学习笔记4(运算符)
  2. 增加博客访问量的 5 种方法
  3. 上善若水,水善利万物而不争
  4. BrightID:成为世界公民
  5. EzLaze III
  6. 《好了歌》--跛足道人
  7. JavaScript中的let是什么
  8. 爱情表白html,爱情表白词大全
  9. 51nod3047 位移运算
  10. 如何在 Go 中编写 Switch 语句