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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/925680.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

书生大模型实战营第四期-入门岛-2. Python关卡任务

书生大模型实战营第四期-入门岛-2. Python关卡任务 书生大模型实战营-第四期 闯关手册:https://github.com/InternLM/Tutorial/blob/camp4/docs/L0/Python/task.md 任务类型任务内容预计耗时闯关任务Leetcode 383(笔记中提交代码与leetcode提交通过截图)20mins闯…

java全栈day10--后端Web基础(基础知识)之续集

一、Servlet执行流程 二、Http协议(相对Tomcat和servlet重要一点) 2.1Http-概叙 2.2Http-请求协议 2.2.3请求数据格式 2.2.3请求数据获取 先启动服务器 访问/hello Servlet 访问浏览器端Http协议数据 查看数据

【Docker系列】Docker 中使用 Redis 配置文件的详细指南

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

图像显示的是矩阵的行和列,修改为坐标范围。

x 3; y 3; f1x x^2 y^2; guance1 f1x; F (x, y) sqrt((x.^2 y.^2 - guance1).^2); % 使用点乘 [x, y] meshgrid(0:1:5, 0:1:5); Z F(x, y); figure; imagesc(Z); % 由于 imagesc 使用矩阵索引作为坐标,我们需要手动添加刻度 % 这里我们假设 x 和 y 的范围…

人工智能的微积分基础

目录 ​编辑 引言 微积分的基本概念 1. 导数 2. 积分 3. 微分方程 微积分在人工智能中的应用 1. 机器学习中的优化 2. 反向传播算法 3. 概率与统计 4. 控制理论 5. 自然语言处理中的梯度 6. 计算机视觉中的积分 7. 优化算法中的微积分 8. 微分几何在深度学习中的…

肿瘤微环境中单细胞的泛癌分类

scRNA-seq可以揭示肿瘤微环境 (TME) 内细胞异质性的宝贵见解,scATOMIC是一种用于恶性和非恶性细胞的注释工具。在 300,000 个癌症、免疫和基质细胞上训练了 scATOMIC,为 19 种常见癌症定义了一个泛癌症参考,scATOMIC优于当前的分类方法。在 2…

OpenCV_Code_LOG

孔洞填充 void fillHole(const Mat srcBw, Mat &dstBw) {Size m_Size srcBw.size();Mat TempMat::zeros(m_Size.height2,m_Size.width2,srcBw.type());//延展图像srcBw.copyTo(Temp(Range(1, m_Size.height 1), Range(1, m_Size.width 1)));cv::floodFill(Temp, Point(…

C语言数据结构——详细讲解《队列》

C语言数据结构——详细讲解《队列》 前言一、队列的概念二、队列的操作(一)定义队列结构(二)初始化队列(三)入队列操作(四)出队列操作(五)获取队头元素&#…

【模块一】kubernetes容器编排进阶业务容器化案例

Kubernetes 实战案例 Kubernetes实战案例-规划(基于nerdctl buildkitdcontainerd构建容器镜像) 业务容器化优势: ① 提高资源利用率、节约部署IT成本。 ② 提高部署效率,基于kubernetes实现微服务的快速部署与交付、容器的批量调度与秒级启动。 ③…

政安晨【零基础玩转各类开源AI项目】探索Cursor-AI Coder的应用实例

目录 Cusor的主要特点 Cusor实操 政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! Cursor 是 Visual Studio Code 的一个分支。这使我们能够…

Android 12.0 DocumentsUI文件管理器首次进入默认显示内部存储文件功能实现

1.前言 在12.0的系统rom定制化开发中,在关于文件管理器的某些功能中,在首次进入文件管理器的时候默认进入下载 文件夹,点击菜单选择内部存储的时候,会显示内部存储的内容,客户开发需要要求默认显示内部存储的文件 接下来分析下功能的实现 如图: 2.DocumentsUI文件管理器首…

9.机器学习--SVM支持向量机

支持向量机(Support Vector Machine,SVM)是一种二分类监督学习模型。支持向量机最早在 1964 年被提出,1995年前后理论成熟并开始被大量应用与人像识别、文本分类等问题中。它的基本模型是定义在特征空间上的间隔最大的线性分类器&…

数据结构---链表

1. 简介 链表(Linked List)是一种常见的线性数据结构,它由一系列节点组成,每个节点包含数据部分和指向下一个节点的指针(或引用)。链表的一个主要优点是能够高效地插入和删除元素,尤其是在数组…

“移门缓冲支架:为家庭安全加码”

在智能家居日益普及的今天,科技不仅改变了我们的生活方式,也提升了家居的安全。移门缓冲支架作为一项结合了现代技术的小型装置,正逐渐成为提升家庭安全的重要配件。它通过吸收门关闭时的冲击力、减缓关门速度以及减少噪音等多重功能&#xf…

vscode、android studio、vim 国产AI编程插件Fitten Code

文章目录 Fitten Code简介vim安装Fitten Code插件Android Studio安装Fitten Code插件Fitten Code功能相关文章 Fitten Code简介 Fitten Code是由非十大模型驱动的AI编程助手,它可以自动生成代码,提升开发效率,帮您调试Bug,节省您…

一个月速成python+OpenCV图像处理

OpenCV是一个广受欢迎且极为流行的计算机视觉库,它因其强大的功能、灵活性和开源特性而在开发者和研究者中备受青睐。 学习OpenCV主要就是学习里面的计算机视觉算法。要学习这些算法的原理,知道它们适用于哪些场景,然后通过Python编写代码来…

深度学习2:从零开始掌握PyTorch:数据操作不再是难题

文章目录 一、导读二、张量的定义与基本操作三、广播机制四、索引与切片五、内存管理六、与其他Python对象的转换本文是经过严格查阅相关权威文献和资料,形成的专业的可靠的内容。全文数据都有据可依,可回溯。特别申明:数据和资料已获得授权。本文内容,不涉及任何偏颇观点,…

win10系统安装docker-desktop

1、开启Hyper-v ———————————————— Hyper-V 是微软提供的一种虚拟化技术,它允许你在同一台物理计算机上运行多个独立的操作系统实例。这种技术主要用于开发、测试、以及服务器虚拟化等领域。 —————————————————————— &#…

如何使用谷歌浏览器访问被屏蔽的网站

在互联网浏览过程中,我们有时会遇到一些网站被屏蔽的情况,这可能是因为地域限制、网络审查或其他原因。对于使用谷歌浏览器的用户来说,有几种方法可以尝试访问这些被屏蔽的网站。本文将详细介绍如何使用谷歌浏览器访问被屏蔽的网站。&#xf…

Next.js -服务端组件如何渲染

#题引:我认为跟着官方文档学习不会走歪路 服务器组件渲染到客户端发生了什么? 请求到达服务器 用户在浏览器中请求一个页面。 Next.js 服务器接收到这个请求,并根据路由找到相应的页面组件。服务器组件的渲染 Next.js 识别出请求的页面包含…