HR青睐的数据库热门考题——事务

本篇会加入个人的所谓鱼式疯言

❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言

而是理解过并总结出来通俗易懂的大白话,

小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的.

🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人能接受我们这个概念 !!!

在这里插入图片描述

前言

在上一篇MySQL数据库的文章中,我们提及HR喜欢考的 一个话题 就是:索引

我们讲解了

  • 索引是什么?

索引就是相当于书本的一种特殊的 目录 , 对于 特定的索引列 的查询能够加快 查询的速度

  • 索引的使用特点
  1. 主键unique 外键 会自带索引, 但不能通过 SQL 删除这些索引。

我们也可以通过 SQL 来创建 自身的索引 ,并且删除 自己创建 的索引

  • 索引的不足
  1. 创建索引会占用 额外的内存空间
  1. 索引可能会加快,减慢,数据库的 增删改 操作的速度 。
  • 索引底层的数据结构
  1. 底层是一颗 N叉的B+ 搜索树
  1. B+ 的 特点
  1. B+ 树的 优势

关于这些小伙伴们可以移步 HR眷恋的数据库高频考题之一 —— 索引 文章中。

而本篇文章中

我们核心讲解事务的概念和它最核心的四个特性

目录

  1. 事务的初识

  2. 事务的四大核心特性

  3. 隔离性需要解决的三大问题

  4. 不同隔离级别的特点

一. 事务的初始

在提及事务,和小伙伴们分享个场景

假如 甲同学的数据库下 有 1000
乙同学的数据库下有 500

现在甲同学向乙同学买东西,需要转账 500 给他, 那么我们的数据库是怎么操作的?

就需要先将甲同学的 SQL语句 1数据库先减去 500

然后再执行乙同学的 SQL语句 2数据库加上 500

这样就完成了转账 😁 😁 😁

但是,但是,但是,难免有时候会有意外发生的,当我们执行完 SQL语句 1 的时候,突然程序崩了或者主机断电了 ,SQL 语句 2 就被 终止执行 了 , 那么最终的结果就变成了 甲同学 500乙同学500 这样的问题产生 。

那么这样的问题该怎么解决呢 🤔 🤔 🤔 🤔 。

于是我们就必须要借助事务的特性来解决上述问题 💥 💥 💥 💥

1. 事务的简介

对于上面的问题,我们要解决该问题的方法就是

把上面的 两条语句 都打包成 一个整体 , 要不两条语句都执行,要不两条语句都不执行 。 这样的话我们就 不会 出现上述的问题 。

注意哦 ,这里的 一条语句都不执行不是真不执行 ,而是出现上述这样的问题时, 假如我们只执行了 语句一 , 而执行不了 语句二 , 数据库自身就会把 前面执行过 的所有语句都 还原,撤销回去 ,就好像之前的语句都 没有执行过一样

而像这样我们把所有语句都当成 一个整体 时, 成功执行所有语句 ,或者执行了 一部分语句 ,出现问题时会 自动还原 ,相当于 一条语句都没有执行 的特性 我们就称之为 事务

而我们把这种 自动还原的特性 称之为 回归机制

2. 回滚机制的本质

对于回滚机制 本质

我们知道数据库是一种 客户端-服务器结构 的程序 , 我们 平常的数据 都在存储到 硬盘 上,但还有一个 特殊的机制 ,叫做 日志机制

当我们 执行事务 时,回滚日志 就会 记录 你每一次使用 SQL语句数据的影响 , 而这些 日志记录 都会存储到 某个特定的文件

当我们主机出现程序崩溃 时, 我们回滚日志保留了前面 SQL语句执行 的过程,当下次程序恢复正常时,就会 回撤这些执行 的语句,还原成

评论 72
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邂逅岁月

感谢干爹的超能力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值