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

高性能MySql阅读

事务的概念:事务是一组sql语句,一组原子性的sql查询,或者一个独立的工作单元。

事务的四大特性:原子性,一致性,隔离性,持久性

原子性:一个事务被视为一个不可分割的最小单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚。(解决“事务执行中途失败,数据状态不一致”的问题)

一致性:数据库总是从一个一致性的状态转换  到另外一个一致性的状态。保证事务执行前后,数据从库从一个合法状态转移到另一个合法的状态。(解决“事务执行后数据违反业务规则”的问题)

隔离性:通常来说,一个事务所做的修改在最终提交以前,对其他事务是不可见的。因为有隔离级别,所以说是通常说。通过隔离级别控制事务间的可见性,避免脏读、不可重复读、幻读等现象,确保每个事务感觉不到其他事务的并发执行。(解决“多个事务并发执行时的相互干扰问题”)

持久性:解决 “数据库故障(如断电、崩溃)后数据丢失” 的问题。事务提交后,对数据的修改会永久保存到存储介质中,即使系统故障也不会丢失。

四种隔离级别:未提交读,已提交读,可重复读,可串行化

可串行化属于最高的隔离级别,通过强制事务串行执行,避免了事务并发执行可能出现的错误:脏读,不可重复读,幻读。

脏读、不可重复读、幻读是事务在并发执行时可能出现的三类典型错误,属于数据库并发控制需要解决的 “一致性破坏” 问题:

  • 脏读:一个事务读取到另一个事务未提交的修改数据。例如事务 A 修改了一条记录但未提交,事务 B 读取了这条未提交的脏数据,之后事务 A 回滚,事务 B 就拿到了无效数据。
  • 不可重复读:同一事务内多次读取同一数据,结果不一致。比如事务 A 两次读取同一条记录,期间事务 B 修改并提交了该记录,导致事务 A 两次读取结果不同。
  • 幻读:同一事务内多次查询,结果集行数不一致。例如事务 A 查询某条件下的记录数,期间事务 B 插入 / 删除了符合该条件的记录,导致事务 A 再次查询时结果集行数变化(像 “幻觉” 一样)。

这三类问题的严重程度依次递增,而数据库的隔离级别就是通过不同的机制来避免这些错误,隔离级别越高,对这些错误的防范能力越强。

这段事务日志的描述,想说明的是事务执行的结果会记录在事务日志中,对日志的操作比对磁盘操作要快得多,然后再对磁盘中的数据进行修改。

这段描述核心就是在解释 “事务日志如何通过‘预写式日志(Write-Ahead Logging)’机制提升事务效率,并保障数据持久性”,具体可以拆解为以下两点:

1. 日志操作比直接修改磁盘数据更快

事务日志采用追加式的顺序 I/O(在磁盘上的一小块区域连续写入),而直接修改表数据是随机 I/O(磁头需要在磁盘多个位置移动)。因此,“先写日志” 的操作速度远快于 “直接修改磁盘数据”,从而提升了事务的执行效率。

2. 分两步完成数据持久化

  • 第一步:存储引擎先修改内存中的数据拷贝,并将 “修改行为” 记录到持久化的事务日志中(这一步是快速的顺序写)。
  • 第二步:事务日志持久化后,内存中被修改的数据再后台缓慢刷回磁盘(这一步不影响事务的即时响应)。

这种 “先写日志,再异步刷盘” 的机制,既保证了事务的持久性(日志持久化后,即使系统崩溃也能恢复数据),又通过 “顺序写日志 + 异步刷盘” 的方式大幅提升了事务执行效率

http://www.dtcms.com/a/544335.html

相关文章:

  • 第3章、MySQL乱码的解决-字符集
  • Ubuntu 安装 Rancher
  • 什么是慢SQL
  • 【人工智能数学基础】多元高斯分布
  • 做网站加入广告联盟做网站的前端是做什么
  • 郑州网页网站制作汕头网站推广优化
  • python电影票房数据可视化分析系统 不同档期电影票房Flask框架 艺恩电影票房网站 requests爬虫(建议收藏)✅
  • webrtc弱网-VivaceUtilityFunction源码分析与算法原理
  • 科技行业ERP系统选择指南:Oracle NetSuite的全面解析
  • 第一个程序HelloWorld
  • 数据分析过程中,发现数值缺失,怎么办?
  • 电商网站设计图海口网站建设好
  • 【自动化测试函数 (上)】Web自动化测试实战精要:定位、操作与窗口管理三部曲
  • 超越传统管理:迈向无感衔接、全域协同的医美运营新范式
  • SUB设备电子狗加密狗开发
  • 1.1 神经网络基本组成
  • HarmonyOS 应用开发:Scroll滚动容器的深度性能优化
  • Java支付对接策略模式详细设计
  • 项目实践6—全球证件智能识别系统(Qt客户端开发+FastAPI后端人工智能服务开发)
  • 微软重磅发布开源引擎Microsoft Agent Framework
  • Qt 高级进阶-MVC架构实现客户端和插件交互(串口案例)
  • 本地部署开源物联网平台 ThingsBoard 并实现外部访问( Windows 版本)
  • leetcode--hot100--思路+知识点(I)
  • 兑吧集团总部大楼乔迁新址 焕新起航开启发展新篇
  • 仓颉视角:ArrayList 动态数组源码深度解析与实践优化
  • 报价网站建设自己动手做一个网页
  • Android红包雨动画效果实现 - 可自定义的扩散范围动画组件
  • codereg.py-ddddocr启动/识别问题
  • 酒泉网站建设有限公司越秀区网站建设公司
  • 一幅漫画说明白:数据治理VS数据管理