当前位置: 首页 > news >正文

我们来学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
    • 身为吃鸡高手,腾讯数据库就是最强王者
    • 单身的你,婚姻登记数据库就是没你信息…

重要备注

  • 事务的英文是transaction,直译为“交易”“*买卖
  • 买的人付钱,卖的人出货,交了钱不出货,出了货不给钱,会…
  • 所以交易本身就是一种不可分割的操作
  • 然而事务没有交易的含义,真实的影响入门和进阶

http://www.mrgr.cn/news/78828.html

相关文章:

  • 如何搭建共享菜园模式的小程序?平台源码、小程序
  • c++类和对象(2)
  • 高被引算法—哈里斯鹰优化算法Harris hawks optimization,HHO/附完整代码
  • 爬虫笔记24——纷玩岛自动抢票脚本笔记
  • iQOO Neo10系列携三大蓝科技亮相,性能与续航全面升级
  • atoi函数的模拟实现
  • 深度学习 | pytorch + torchvision + python 版本对应及环境安装
  • spring boot3.3.5 logback-spring.xml 配置
  • create-vue创建vue3项目
  • 【2024】使用Docker搭建redis sentinel哨兵模式集群全流程(包含部署、测试、错误点指正以及直接部署)
  • dpwwn02靶场
  • uniapp手机端一些坑记录
  • 基于go语言探讨 Kubernetes 中 Rollout History 的实现与优化
  • Java启动通用参数,自动记录GC等信息到专门日志文件中
  • python学习笔记9-零散知识点
  • 微服务即时通讯系统的实现(服务端)----(2)
  • 工具:Zotero Better BibTex插件和Latex基础知识
  • 【动手学电机驱动】STM32-FOC(9)无感 FOC 电机转速调节
  • openjdk17 jvm堆空间分配
  • Qt 面试题学习11_2024-11-29
  • leetcode 之二分查找(Java实现)(1)
  • redis.conf
  • MySQL主从复制
  • ELK Fleet JAVA LOG收集与展示教程
  • Python学习笔记
  • 鸿蒙Next星河版基础用例