事务四要素

    对于数据库来说,并发性和准确性是数据库需要权衡的两个点。

    类似于我们的应用系统,又要要性能还要要准确。

    数据准确性这一条来说,最好的控制就是串行化,都别急,一个一个来。这样数据就没问题了。

    然而就是这个 “都别急” 让大家很急,我们又想要并发,现在这环境你不谈并发都不好意思拿出手。

    好了,那么并发和数据准确性怎么平衡。要并发我们所能想到的就是在必要的时候加锁,

    加各种层级各种范围不一样的锁。加锁这个操作其实就是在平衡我们刚才的那两点。

    这里不谈数据库的锁机制,我们先来谈谈 事务ACID 中的隔离性— 事务隔离级别

    那你会问,这是个什么?为什么要有隔离性,我不隔离不行么?

    说到这呢,我们就要简单再说说事务,事务我估计大家耳熟能详,但是这里你们最好再听我唠叨一下,看我说的对不对。

    (敲黑板,划重点)事务就是一个执行单元,一个具有原子性的执行单元。

    我觉得还是有必要再说说或者总结一下事务四要素

原子性

    这个也很好理解,这个事务就是一个原子单元,要么执行成功,要么执行失败,中间不能有断层。

    类似于多线程同时操作一个变量,你告诉操作系统,我在这原子操作变量呢,你别进行线程切换(时间片切换),等我执行完,你再随意~

一致性

    数据库总是从一个一致性的状态转换到另一个一致性的状态。

    我的理解是最终一致性也就是CAP理论的C.

    一开始我总觉得这个一致性和原子性的定义是一个东西(我现在也隐约有这样一种感觉)

    我还是尝试着总结区分他们的不同。

    比如说原子性:我一条语句执行失败了要回滚。

    比如说一致性:我执行到中间停电了,数据库崩溃了,我们可以维持正确的状态。

    原子性更像是—过程,我注重的是过程

    一致性更像是—结果,我不管过程怎样,我只是用我的KPI来考量你~

再说隔离性

    其实这篇文章我想写隔离性,但是写隔离性我想从事务这四要素进行引申,写到这我发现我跑题了。我去改改标题。

    我没有写具体的事务隔离性,我现在正在事务四要素这捆着呢。

    那就说说隔离性,我第一次看到隔离性这个定义,脑子第一反应就是隔离性这个概念将每个事务化作程了管道,

    每条管道留着属于自己的信息,互相是不知道存在的。

    后来发现隔离性能是有隔离级别的,因为业务场景不尽相同,需要不同的隔离级别。

    类似于,我一个操作操作的数据因不应该让其他事务看到我修改的数据?—需要,因为有的场景需要这样的可见性

    我总将事物的隔离性总结为事物的可见性,这个可见性包括什么可以看?什么时候看?

    这些问题我打算下次再总结。我们这里不细讨论。

持久性

    呀,这个要素让我很是想不到,因为太熟悉了,熟悉的得都会想不起它。

    怎么才算是持久性呢?定义是:一旦事务提交,其所做的修改将会永久保存到数据库中。

    这个定义是模糊的,需要加入很多策略来保证数据的持久性。

    比如:我就是在事务提交时,系统挂掉了,你怎么来保证数据的持久性。

总结一下,事务四要素,不但要知道名字最好理解一下,有些东西就怕细细琢磨~

mysql 事务四要素杂谈的更多相关文章

  1. mysql事务四种隔离级别

    事务的基本要素:原子性,一致性,隔离性,持久性. 事务并发问题:脏读,不可重复读,幻读. mysql隔离级别:read-uncommitted,read-committed,repeatable-re ...

  2. MySQL 事务与锁机制

    下表展示了本人安装的MariaDB(10.1.19,MySQL的分支)所支持的所有存储引擎概况,其中支持事务的有InnoDB.SEQUENCE,另外InnoDB还支持XA事务,MyISAM不支持事务. ...

  3. MySQL的四种事务隔离级别

    本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB 一.事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做 ...

  4. [转载] MySQL的四种事务隔离级别

    本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB 一.事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做 ...

  5. MySQL的四种事务隔离级别【转】

    本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB 一.事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做 ...

  6. MySQL事务的四种隔离级别

    事务的基本要素: 原子性(atomicity):事务开始后的全部操作, 要么全部执行成功,如果中间出现错误,事务回滚到事务开始前的状态. 一致性(Consistency):事务开始后,数据库的完整性约 ...

  7. MySQL系列详解四:MySQL事务-技术流ken

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

  8. mysql事务、触发器、视图、存储过程、函数

    存储过程: procedure 概念类似于函数,就是把一段代码封装起来, 当要执行这一段代码的时候,可以通过调用该存储过程来实现. 在封装的语句体里面,可以用if/else, case,while等控 ...

  9. 事务以及MySQL事务隔离级别+MySQL引擎的区别

    1.事务的基本要素:ACID 1.原子性(Atomicity): 事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有 ...

随机推荐

  1. Sql Server存储过程详解

    存储过程--查询: if (exists (select * from sys.objects where name = 'GetUser')) drop proc GetUser --判断存储过程是 ...

  2. 深入浅出Object.defineProperty()

    深入浅出Object.defineProperty() 红宝书对应知识点页码:139页 红宝书150页:hasOwnProperty( )方法可以检测一个属性是存在于实例中,还是存在于原型中,给定属性 ...

  3. 【设计模式】代理模式-Proxy

    转载:https://www.cnblogs.com/yangchongxing/p/7654725.html 代理模式定义如下: Provide a surrogate or placeholder ...

  4. 剑指Offer-46.孩子们的游戏(圆圈中最后剩下的数)(C++/Java)

    题目: 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首先,让小朋友们围成一个大圈.然后,他随机指定 ...

  5. 安装lispbox出现:error while loading shared libraries: libjpeg.so.62: cannot open shared object file: No such file or directory

    如下图,运行lispbox出现如下报错(第一个命令): 检索之后发现解决办法:Solution to libjpeg.so.62 输入一下两条命令(第二条也必须执行): sudo apt-get up ...

  6. java基础-控制流程语句

    一 前言 周末睡觉好舒服,都不想动了,就想睡睡,晒晒太阳,作者劳碌命还是过来写文章了.基础系列文章已经已经出到控制流程,感觉也挺快的,我很自信全网没都多少系列文章能有我这基础系列写的这么好,易于初学者 ...

  7. java设计模式(一)动态代理模式,JDK与CGLIB分析

    -本想着这个知识点放到Spring Aop说说可能更合适一点,但因为上一篇有所提到就简单分析下,不足之处请多多评论留言,相互学习,有所提高才是关键! 什么是代理模式: 记得有本24种设计模式的书讲到代 ...

  8. SuperMap iDesktop .NET 10i制图技巧-----如何利用二维平面数据起白膜

    1.打开超图的SuperMap iDesktop,加载数据源 udbx其实就是类似于arcgis中的gdb一样的东西,把数据压缩在里面了,这样也可以保证数据的统一集中 2.打开二维面数据,里面的结构如 ...

  9. 内网渗透教程大纲v1.0

    内网渗透 ☉MS14-068(CVE-2014-6324)域控提权利用及原理解析 ☉域控权限提升PTH攻击 未完待续...

  10. Java面试必看之Integer.parseInt()与Integer.valueOf()

    Integer.parseInt()和Integer.valueOf()都是将成为String转换为Int,但是为什么Java会提供两个这样的方法呢,他们如果是同样的操作,岂不是多此一举? 我们来深挖 ...