我们来学mysql -- 事务之概念(原理篇)
事务的概念
- 题记
- 一个例子
- 一致性
- 隔离性
- 原子性
- 持久性
题记
- 在漫长的编程岁月中,存在一如既往地贯穿着工作,面试的概念
- 这类知识点,事不关己当然高高挂起,精准踩坑时那心情也的却是日了🐶
- 请原谅我的粗俗,遇到BUG时,如姜文所说:此时此刻恰如彼时彼刻
- 那么浩如繁星的概念,应当拿捏哪些呢!
- 又正如一则流传许久的经典语录:面试造火箭,工作拧螺丝
- 这样,着手点就是编程中实际用到的螺丝
- 那么接下来,各位看官们,坐好了,来看事务
一个例子
- 你在数钱存钱时,有人在一旁打扰,总归是让你烦躁的
- 你准备一万给三儿,三儿顺手给加了个0
- 叮的一声,三儿一看手机,收到了3万,真是喜出望外,不料…
- 不料,结合银行异常流水,扫黄组顺藤摸瓜…
- 这是个好例子,满足了大家的想象,也希望大家洞察到问题
- 数钱存钱,作为钱迷子,没人能做到像我这样一气呵成(原子性)
- 转钱付钱,不让别人操作(隔离性)
- 多加了0,钱不够转,却收到3万,银行能不急眼?(非一致性)
一致性
-
56个民族,歌里就是这样唱的,国内人口流动大,那也变不成57、58
-
咱们150分的数学卷子,学霸他爸来了都做不出160分
-
各个城市的房子,总不会是负数 -2.1平/米 (我高位奔现的房子啊!!!)
-
告诉你我高考1000分,一听就知道我是胡扯
-
数据库只是现实世界的一个映射,现实世界的约束当然也体现在数据库中
- 身为现实世界的牛马,银行帐户不会躺有1000万
- 作为吃鸡高手,王者荣耀不可能只是青铜级别
- 闺女是白富美,不可能嫁给矮穷矬
-
这就是一致性,符合现实世界的约束,或者说和现实世界是一样
- 身为现实世界的牛马,银行数据库帐户区区15块6
- 作为吃鸡高手,腾讯数据库是最强王者
- 闺女是白富美,婚姻登记数据库上对方高富帅
- 有支出,有收入,转给了三儿,铁的事实,禁不住银行数据库流水查,一查就露馅,现实中消费,还有多少就是多少
隔离性
- 编程中任务按照模块分到人,小明创建对应数据库表,实体类、控制器,服务层,小军也来做这个模块
- 相同的功能,一起改,GIT、SVN上一堆冲突
- 设计方案,避免这些就做到了隔离性
原子性
- 上次到银行,存100块,被业务员羞辱了,这次你带来1万块
- 你分100块存,银行经理来表示歉意,你还按照100块一次次存(MD能受这气)
- 那么要么100块存入,要么不存入(有假钱,真是始料未及),还能存在薛定谔的猫?(那牛逼了,当年就给你颁发诺贝尔奖)
- 设计方案,达到这样效果,就实现了原子性
持久性
- 在前三者的加持下
- 作为牛马,银行数据库就是15.5
- 身为吃鸡高手,腾讯数据库就是最强王者
- 单身的你,婚姻登记数据库就是没你信息…