MySQL执行过程

news/2025/11/28 16:35:46/文章来源:https://www.cnblogs.com/hellodeyang/p/19283274

目录
  • MySQL执行过程
    • 修正
    • binlog开启状态
    • 一句话总结SQL执行:
    • 总结要点
    • 数据恢复
      • 崩溃恢复(自动)
      • 手动恢复(人为)
      • 一句话对比

MySQL执行过程

修正

MySQL - 一条 SQL 的执行过程详解 | Java 全栈知识体系

其中修正:数据库连接池有 Druid、C3P0、DBCP,对于MySQL方来说,它自己不是连接池,而是连接管理。应用通过本地的数据库连接池,复用多个到MySQL的持久连接。MySQL服务器则使用多线程模型,为每个连接分配一个线程来并发处理其上到来的SQL请求。

为什么说MySQL这边不叫“连接池”?

  1. 角色不同(主动 vs. 被动)
    • 应用连接池:是一个主动的管理者。它主动创建连接、主动分配连接、主动回收连接、主动检测连接健康度。它的行为是预设好的、主动发起的。
    • MySQL的“连接管理”:是一个被动的接受者。它监听一个端口,等待客户端连接。当连接建立后,它就为这个连接分配一个线程来处理该连接上发来的请求。它不会主动去“分配”或“复用”连接给客户端。连接的生命周期主要由客户端驱动。
  2. 目的不同(性能优化 vs. 并发处理)
    • 应用连接池:主要目的是性能优化,解决创建/销毁连接的高昂开销。
    • MySQL的“连接管理”:主要目的是实现并发处理。每个连接一个线程(或由线程池管理),是为了同时服务多个客户端,而不是为了“复用”连接以节省成本。

那么,MySQL这边更准确的叫法是什么?

MySQL这边更准确的术语是 “连接管理器”“连接层”。它的核心组件是 “连接线程”

  • 在传统模型中,是 “每连接一线程”(Thread-Per-Connection)。MySQL会为每一个成功的网络连接创建一个对应的线程,专门服务这个连接。
  • 在高性能版本(如Percona Server、MariaDB)或企业版MySQL中,提供了 “线程池”(Thread Pool)插件。注意,这仍然是线程池,不是连接池。它的目的是用少量工作线程来服务大量连接,避免在连接数极高时(成千上万)因线程上下文切换导致系统崩溃。但即便如此,它管理的仍然是处理请求的线程,而不是网络连接本身。连接依然是保持的。

MySQL服务器并没有一个与应用端对等的“连接池”

  • 应用连接池:管理的是物理TCP连接的复用,目的是节省建立连接的成本
  • MySQL连接管理器:管理的是为每个连接服务的线程,目的是实现请求的并发处理

binlog开启状态

MySQL 5.7 及更早版本默认是:关闭的。

MySQL 8.0 版本默认是:开启的。

你可以通过以下 SQL 命令快速确认 Binlog 的状态:

-- 如果 `Value` 是 **`ON`**,则表示已开启。
-- 如果 `Value` 是 **`OFF`**,则表示未开启。
SHOW VARIABLES LIKE 'log_bin';

总结

MySQL 版本 Binlog 默认状态 原因
5.7 及以前 OFF (关闭) 认为复制是高级功能,非核心需求
8.0 及以后 ON (开启) 提升开箱即用性,为复制、备份、恢复提供更好基础支持

如果需要实现主从架构,必须开启binlog。

MySQL 5.6 开启 Binlog 步骤:

  1. 修改配置文件
    找到 my.cnf (Linux) 或 my.ini (Windows),在 [mysqld] 段落下添加

    [mysqld]
    server-id = 1
    log-bin = mysql-bin
    
  2. 重启 MySQL 服务

    # Linux
    service mysql restart
    # 或
    systemctl restart mysql# Windows: 在服务管理器中重启 MySQL
    
  3. 验证是否开启

    SHOW VARIABLES LIKE 'log_bin';
    -- 看到 ON 即为成功。
    

注意: server-id 是 MySQL 5.6 主从复制的必需参数,不然可能无法启动。

一句话总结SQL执行:

SQL执行 = 记录旧照(Undo Log)-> 改内存 -> 写流水账(Redo Log)-> 提交时归档(Binlog)-> 最终确认。

  • Redo Log(重做日志):保证持久性。事务提交后,即使宕机,数据也绝不丢失。
  • Undo Log(回滚日志):保证原子性。事务回滚或系统崩溃时,能撤销修改,回到过去。
  • Binlog(归档日志):用于数据复制基于时间点的数据恢复

总结要点

  • 三大缓冲区

    • Buffer Pool:缓存数据Undo Log
    • Log Buffer:缓存Redo Log
    • Binlog Cache:每个线程独占,缓存Binlog
  • 刷盘时机

    • Redo Log:事务提交时强制刷盘(取决于 innodb_flush_log_at_trx_commit)。
    • Binlog:事务提交时强制刷盘(取决于 sync_binlog)。
    • 数据和Undo Log异步刷盘,靠后台线程完成。
  • 这个刷盘时机设计实现了:即使数据页本身没有刷盘,只要事务提交成功,修改就一定可以通过日志恢复,数据绝不会丢。

    • 可靠性:通过Redo Log和Binlog的同步刷盘,确保了即使崩溃,已提交的事务也绝不丢失。
    • 高性能:通过数据和Undo Log的异步刷盘,避免了缓慢的随机IO对事务提交速度的影响。

undo log、redo log 、bin log 都是要先写进缓存再持久化的?

MySQL 这三种核心日志都采用 “先写缓存,后持久化” 的策略,这是为了在保证数据安全的同时,极大地提升性能。

以下是它们的缓存和刷盘机制对比:

日志类型 缓存区域 刷盘时机与控制 核心目的
Undo Log Buffer Pool 异步刷盘。随数据脏页由后台线程一起刷入表空间(ibdata1)。 保证事务原子性
Redo Log Log Buffer 可配策略。由 innodb_flush_log_at_trx_commit 控制,可设置为提交时强制刷盘。 保证事务持久性
Binlog Binlog Cache 可配策略。由 sync_binlog 控制,可设置为提交时强制刷盘。 用于复制与恢复

一句话总结:

  • Undo Log 被视为数据,所以和数据页共用 Buffer Pool,异步刷盘。
  • Redo LogBinlog真正的日志,有自己独立的缓存,并且可以通过参数在事务提交时进行同步强制刷盘,以确保数据不丢失。

数据恢复

崩溃恢复(自动)

  • 什么时候用:MySQL自己挂了或服务器宕机后重启。
  • 怎么做的
    1. 前滚:用 Redo Log 把磁盘上没来得及存的已提交数据,在内存里重做一遍。
    2. 回滚:用 Undo Log 把那些没提交成功的事务修改,全部撤销掉。
  • 目标:保证数据回到崩溃前最后一刻的一致性状态。整个过程MySQL自动完成。

崩溃恢复(自动)

应对mysql服务突然停止的情况:先使用Redo Log前滚,再使用Undo Log 回滚。

  1. 第一阶段:前滚
    • 动作:无条件地、顺序地重放 Redo Log 中从最近检查点之后的所有修改。
    • 目的:将数据库在内存中的状态重建到崩溃发生前的那一刻。这个状态是一个“混杂状态”,包含了已提交和未提交的事务。
  2. 第二阶段:回滚
    • 动作:在前滚建立起的“混杂状态”基础上,扫描所有事务,利用 Undo Log 回滚那些没有 commit 标记的事务
    • 目的:清理现场,撤销所有未完成的工作,最终得到一个纯净的、只包含已提交事务的一致性状态

最终效果: 数据库中只留下 所有已提交事务的结果,完美恢复到崩溃前的一个一致性状态。

手动恢复(人为)

  • 什么时候用:人闯祸了,比如误删了表或数据。
  • 怎么做的
    1. 最近的全量备份,恢复一个数据库底子。
    2. Binlog 作为“操作记录”,把从备份之后到误操作之前的所有增删改命令,重新执行一遍。
  • 目标:把数据恢复到某个误操作发生之前的某个时间点。需要DBA手动操作。

一句话对比

  • 崩溃恢复:救系统,靠 Redo/Undo Log,自动的。
  • 手动恢复:救,靠 备份 + Binlog,手动的。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年11月SEM扫描电镜厂家推荐榜:进口/国产/日立/国仪/钨灯丝/FIB/日立冷场/电子/场发射/高分子/超高分辨率/扫描电镜品牌综合参考指南,上海富泰微——微观视界的硬核担当

2025年,扫描电子显微镜(SEM)行业持续保持10%以上的年增长率,市场规模稳步攀升,成为材料科学、纳米技术等领域不可或缺的核心装备。在众多从业者的选型需求下,兼具技术实力与服务保障的企业更受青睐,以下这份推荐…

玩 Linux 随便记录点东西

声明:本文有大量内容由 AI 生成,但是这些内容经过验证。 QQ 9 更改存储位置 好像改不了,只能把原来的聊天记录复制过来。 具体来说,把原来以 QQ 号命名的文件夹里的 nt_qq 文件夹里的东西,复制到 ~/.config/QQ/nt…

占有率最高的工业总线:PROFINET、Modbus 与 EtherCAT

占有率最高的工业总线:PROFINET、Modbus 与 EtherCAT剑指工控 作者: 工控老王 剑指工控 06-10 08:03 投诉 阅读数:1443​​引言 在工业自动化领域,通信协议的选择是保障生产效率、设备协同及系统稳定运行的关键因…

2025年11月深圳网站建设公司TOP榜:知名网站建售/外贸网站建设公司后保障双维度解析

在数字化转型深入推进的当下,企业官网已从基础信息展示平台升级为品牌传播与业务拓展的核心载体,优质的网站建设服务成为企业实现数字化突破的关键支撑。对于企业而言,选择一家专业、可靠的网站建设服务商,直接关系…

如何判断一个痛点是结构性痛点(值得做生意)还是噪音(不要理会)?

1、看频率和普遍性 是很多人都在骂这个问题,还是只有一个人在骂? 噪音: 只有一个评论提到,这个蓝色按钮太丑了。【🛰:和平本记】 这是主观审美,不是市场需求 结构性痛点: 你在某个社交平台上看到有5个人都在抱…

2025年广东家装全屋定制推广权威推荐榜单:广东全屋家具定制/广东全屋整装家具定制/广东全屋定制柜子供货商精选

在消费升级与品质家居需求持续增长的背景下,广东家装全屋定制行业凭借创新的设计理念、先进的生产工艺和完善的服务体系,已成为引领全国家居潮流的重要力量。随着住宅产业化与装修标准化进程加速,绿色环保、智能家居…

一文通关天文物理顶刊

聚焦天文物理,解锁选刊神器,深度解析顶刊!01.The Astrophysical Journal Supplement Series 期刊介绍 《The Astrophysical Journal Supplement Series》是天文与天体物理领域顶尖期刊,该刊为 SCIE 收录期刊, 2025…

企业智能ITR升级指南:客户服务体系的实践思考

一文讲清ITR如何重塑企业服务能力:基于燕千云AI-ITR平台,加速企业迈向智能服务流时代。11月20日,“向智而行数链未来——2025第四届数智时代高峰论坛之走进汤臣倍健”活动在广东珠海圆满落幕。本次活动由上海中商网…

【IEEE出版 | EI检索】第七届国际科技创新学术交流大会暨通信、信息系统和软件工程学术会议(CISSE 2025)

通信、信息系统与软件工程学术会议(CISSE 2025)作为第七届国际科技创新学术交流大会分会场开展。大会将于2025年12月19-21日在中国广州隆重举行。【延续IEEE出版 | 连续6届稳定见刊检索 | 马来西亚理工大学、湘潭大学…

机器学习在医疗领域的创新应用

本文探讨了如何利用机器学习技术降低医疗成本、提高诊断准确性并改善医疗服务可及性,重点介绍了边缘机器学习在患者监测、家庭护理等场景的实际应用案例与技术架构。机器学习在医疗领域的创新应用 Gari Clifford是埃默…

大带宽服务器租用建站有哪些优势

大带宽服务器租用建站:6大核心优势,从用户体验到业务增长全赋能 大带宽服务器(通常指100Mbps以上独享带宽,建站场景建议20Mbps起步,高流量业务50Mbps+)是提升网站核心竞争力的关键基础设施。其优势不仅体现在“速…

隐私代币逆势上涨背后的技术、监管与市场博弈

在全球加密货币市场暴跌超万亿美元的背景下,Zcash等隐私代币逆势上涨数百%。本文深入分析隐私代币的技术升级、监管压力与市场流动性风险,探讨匿名技术与反洗钱法规的冲突。隐私代币在市场疲软中逆势上涨的背后原因 …

【完结】国产金仓数据库(KingBase)从零开始

【完结】国产金仓数据库(KingBase)从零开始 学习地址:……/s/19gH08YGWOyRrHHet1cFIfg 提取码:m1lz 清晨的第一缕阳光照进机房,一排排服务器悄然低鸣。在这片由0和1构成的数字世界里,一场没有硝烟的战争已持续多…

2025年橡塑保温板直销厂家权威推荐榜单:B1级橡塑板/橡塑隔音棉‌/橡塑海绵板‌源头厂家精选

在建筑节能与工业保温需求持续增长的推动下,橡塑保温板凭借其导热系数低、防火性能好、安装便捷等特性,市场需求稳步提升。行业数据显示,2025年中国橡塑保温材料市场规模预计突破120亿元,年均增长率稳定在8%-10%。…

控油洗发水哪款好?10 款高口碑款推荐,解决头油显邋遢 + 贴头皮尴尬

早上精心吹的蓬松发型,下午就贴成“油腻头盔”;刚换的浅色衬衫,领口很快沾上清油印;跟风买的网红洗发水,用后反而头痒掉发——油头星人的日常,总在“洗与不洗”间反复纠结。其实油头的关键问题不是洗头频率,而是…

新突破!佐力药业再次斩获国家级品牌荣誉

2025年11月20日,中国质量协会主办的“2025年品牌创新大会暨第十三届全国品牌故事大赛全国决赛”评选结果揭晓。浙江佐力药业股份有限公司的参赛作品《佐力,守护记忆之光:一家药企的责任远征》荣获征文比赛全国总决赛…

2025年煤矿刮板机供货厂家权威推荐榜单:刮板机/刮板机链轮/刮板机输送机源头厂家精选

在现代化煤炭开采与运输领域,煤矿刮板输送机作为核心的煤炭输送设备,其性能优劣直接影响到整个采煤工作面的生产效率与运行安全。随着煤炭行业智能化、集约化发展,高强度、高可靠性、长寿命的刮板机设备及配件市场需…

Branch-GAN:一种高质量写作对抗模型生成方法

论文:Branch-GAN:Improving Text Generation with (Not So) Large Language Models故事背景:当前AI写作文的问题现在最厉害的作文AI(比如GPT-4)都是基于Transformer架构的“大语言模型”。它们通过阅读海量文本,学…

2025 年市面上四川不锈钢井盖 / 不锈钢井盖厂家最新TOP排名

2025 年市面上四川不锈钢井盖 / 不锈钢井盖厂家最新 TOP 排名随着西南地区市政建设提速、商业地产扩容及老旧小区改造深入,不锈钢井盖作为兼具功能性与美观性的市政配套产品,市场需求逐年攀升。据 2024 年四川市政工…

GAN模型

GAN的核心思想:警察与小偷的博弈 想象这样一个场景:造假者(Generator/生成器):学习制造假币,目标是让假币看起来像真币 警察(Discriminator/判别器):学习识别假币,目标是区分真币和假币两者不断博弈:造假者…