自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (1)
  • 收藏
  • 关注

原创 MySQL Buffer Pool终极揭秘:缓存页淘汰与刷盘的完整机制

场景free链表状态处理策略性能影响正常有可用页直接分配零额外I/O预警低于阈值后台线程加速清理轻微I/O增加紧急完全耗尽同步刷盘LRU冷区尾部CRUD阻塞机制触发时机目的性能影响定时清理后台线程每1秒保持free链表高水位几乎无影响flush刷盘脏页过多/日志压力保证数据安全低峰期执行同步淘汰free链表耗尽应急处理阻塞用户线程。

2025-12-20 20:05:32 892

原创 MySQL Buffer Pool性能优化:LRU链表极致设计之道

隔离:冷热数据物理分区,互不干扰比例:37%冷区作为缓冲垫,63%热区作为核心战场。

2025-12-20 17:40:22 897

原创 MySQL Buffer Pool深度解析:冷热数据分离下的LRU链表工作机制

冷数据区是缓冲垫:抵御预读和全表扫描的缓存污染1秒规则是过滤器:有效区分真实热点与瞬时访问热数据区是保险箱:确保核心数据始终驻留内存参数调优是艺术:根据业务特征动态调整比例。

2025-12-19 15:26:02 1039

原创 MySQL Buffer Pool深度解析:LRU算法的完美与缺陷

当加载一个数据页时,会顺带将其相邻的数据页也加载进缓存。简单LRU的假设:被加载的页 = 即将被访问的页实际情况:预读和全表扫描加载的页,大量是不会被访问的冷数据。

2025-12-19 14:01:09 658

原创 MySQL Buffer Pool深度解析:当缓存页不足时如何基于LRU算法进行淘汰

将被修改过的缓存页数据刷新到磁盘(如果它是脏页)清空该缓存页将其重新加入free链表,变为可用状态应该淘汰哪些缓存页?free链表耗尽是常态:持续的数据加载必然导致空闲页用完LRU是淘汰依据:通过访问时间戳智能判断页面热度头部-尾部机制:热点数据在头部,冷数据自然沉降尾部性能保障:确保内存中保留的都是高价值数据,最大化缓存命中率系列预告:下一篇文章将深入探讨MySQL LRU算法的优化细节,包括如何解决"全表扫描污染缓存"等经典问题。参考资料:《MySQL专栏》

2025-12-19 08:45:12 1223

原创 InnoDB 脏页到底什么时候刷盘?一文彻底讲透 Flush List 与 Checkpoint 机制

Checkpoint 表示:redo log 中,哪些修改已经安全落盘。Checkpoint 之前的 redo log👉 对应的脏页必须已经刷盘Checkpoint 之后的 redo log👉 允许还没刷盘Flush List 决定“哪些页需要刷”,Checkpoint 决定“刷到哪里才算安全”,两者共同决定了 MySQL 的性能上限与稳定性下限。“会用 MySQL”迈进了👉“懂 MySQL 内核的 DBA”

2025-12-15 16:25:51 734

原创 深入 InnoDB 内核:Buffer Pool 中的 Flush List 到底解决了什么问题?

Flush List 是 InnoDB 管理脏页的核心数据结构,是性能可控刷盘的基础,也是数据库稳定运行的关键保障。IO 抖动checkpoint 卡顿Buffer Pool 命中率异常背后,几乎都绕不开Flush List 的长度和刷盘节奏。

2025-12-15 16:23:19 1167

原创 深入理解 MySQL Buffer Pool 核心机制:初始化、free 链表与数据页流转

初始化时划分“缓存页+描述数据块”,为数据缓存奠定基础;free链表以单链表形式管理空闲页,实现O(1)分配/归还;数据页读取流程:哈希表检测→free链表分配→磁盘加载→LRU链表迁移;哈希表提供快速缓存命中检测,是Buffer Pool高性能的关键保障。理解Buffer Pool的这些核心机制,不仅能帮你排查MySQL性能问题(如Buffer Pool过小导致的频繁磁盘IO),还能为数据库优化(如调整、合理设计索引)提供理论支撑。

2025-12-12 22:05:56 893

原创 从一次增删改操作开始:彻底理解 MySQL Buffer Pool 的地位与作用

它是 InnoDB 的核心内存引擎,是所有数据读写的唯一入口,是数据库性能与安全性的关键支撑。理解 Buffer Pool 的逻辑,你就理解了 MySQL 的一半。redo logundo log(事务回滚)MVCC脏页、刷盘策略自适应哈希索引B+树索引加载机制查询优化都与 Buffer Pool 有直接关系。如果你想系统搞懂 MySQL,从 Buffer Pool 开始是最佳路径。如果本篇文章对你有帮助,欢迎:✏️ 评论交流。

2025-12-11 16:51:28 2891 1

原创 Rocky Linux 9.6 环境下,Prometheus + Grafana 生产级安装手册

至此,你已经完成:✔ Prometheus 安装✔ Node Exporter 安装✔ MySQL Exporter 安装✔ Grafana 安装✔ 监控指标接入✔ 导入成熟 MySQL 监控大盘。

2025-12-10 23:10:26 812

原创 Linux + MySQL + Sysbench 一键部署和压测教程

安装 Sysbench 并验证创建测试数据库sbtest和用户sbtest使用prepare构造数据表使用run进行各种类型压测使用cleanup清理数据分析每秒统计和最终汇总报告。

2025-12-10 23:08:43 799

原创 MySQL 8.0.39 Rocky Linux 一键安装脚本(完整可直接运行)

下面给你一份支持:✔ 自动配置官方 MySQL Yum 源✔ 自动安装指定版本 8.0.39✔ 自动生成 my.cnf✔ 自动初始化数据库✔ 自动读取临时密码并更新为新密码✔ 自动开启远程访问✔ 全程无人工输入。

2025-12-09 16:48:21 357

原创 《Rocky Linux 9.6 部署 MySQL 8.0 生产手册(含错误处理)》

包含:✔ 标准安装流程✔ 遇到的 GPG 错误及解决✔ root 无法登录问题✔ 使用 skip-grant-tables 修复密码✔ 全过程命令 + 解释✔ 适合企业留档。

2025-12-09 16:47:15 638

原创 打开脑洞:如果我来设计存储引擎,会有多少种?

跳出MySQL现有存储引擎的框架,从业务场景第一性原理出发,思考存储引擎的本质。高并发写入、海量数据查询、临时缓存…不同场景下,理想的存储引擎应该长什么样?本文带你开启一场脑洞大开的技术思辨之旅。

2025-12-08 16:34:07 1086

原创 三种Redo日志刷盘策略到底选择哪一种?深度解析与选型指南

策略安全性性能适用场景推荐度=1最高(零丢失)一般核心业务、金融系统⭐⭐⭐⭐⭐=2中等(OS宕机丢)较好日志、监控、可补偿业务⭐⭐⭐=0最低(DB宕机丢)最佳测试环境、非持久化缓存⭐最终答案对Redo日志刷盘策略,必须选择策略1(innodb_flush_log_at_trx_commit=1)。这是数据库系统保障数据安全的底线,也是所有生产环境的标准配置。性能优化应从架构设计、SQL优化、硬件升级等方向入手,而非牺牲数据持久性。思考题延伸:在你的业务中,哪些数据可以容忍丢失?

2025-12-08 16:26:32 1209

原创 一条 SQL 更新语句是如何执行的?(超详细执行流程解析)

客户端↓连接器(鉴权)↓解析器(词法+语法分析)↓预处理器(表/字段/权限校验)↓优化器(选择索引/构建执行计划)↓执行器↓InnoDB 引擎:① 定位记录② 加锁③ 生成 undo log④ 写 redo log(prepare)⑤ 更新 buffer pool(脏页)↓写 binlog↓redo log commit(两阶段提交)↓事务提交成功↓最终落盘(后台)一句话总结✔ 读 SQL 看执行计划✔ 写 SQL 看日志与锁。

2025-12-07 22:33:37 1446

原创 一条 SQL 查询语句是如何执行的?(超详细图解版)

客户端↓连接器 (建立连接 / 校验权限)↓解析器 (词法/语法分析 → 生成语法树)↓预处理器 (表/字段/权限校验)↓优化器 (生成执行计划 → 使用什么索引)↓执行器 (按照计划调度存储引擎)↓存储引擎 (B+Tree / MVCC / 读取磁盘数据)↓返回结果给客户端这就是一条 SQL 的完整生命旅程!

2025-12-07 22:30:32 726

原创 ClickHouse 常见面试题

恢复物理备份时,需要将备份的数据文件复制回 ClickHouse 的数据目录,并启动 ClickHouse 服务。在集群环境下,你需要在每个节点的配置文件(通常是。物理备份是直接复制 ClickHouse 的数据文件,这种方法适用于全量备份,能确保数据的完整性。你可以根据实际需求为备份命名,通常可以使用时间戳、版本号等信息来区分不同的备份。语句用于创建备份,这种方法可以在 ClickHouse 服务运行时进行备份。在 SQL 语句中,直接使用配置文件中定义的磁盘名称。是备份的名称,它会作为子目录创建在。

2025-12-06 22:54:56 841

原创 Rocky Linux磁盘扩容

【代码】Rocky Linux磁盘扩容。

2025-12-06 22:53:27 198

原创 MySQL 8.0.39版本GTID集群安装

说明:需按顺序启动节点,避免冲突。五、启动组复制(GTID集群)

2025-12-05 14:22:25 538

原创 Linux修改ip配置未生效

配置未生效是因为系统仍在保留旧的动态IP地址(192.168.0.226)。

2025-12-05 06:53:32 334

原创 Rocky Linux 9.x 安装 MySQL 8.0.39 主从复制完整教程

【代码】Rocky Linux 9.x 安装 MySQL 8.0.39 主从复制完整教程。

2025-12-04 22:37:39 631

原创 RockyLinux 安装 MySQL 8.0.39 版本教程

在实际生产环境中,强烈建议使用更新的 8.0.x 稳定版本(如 8.0.39 或更高版本),以获得更好的稳定性和安全性。下面是。

2025-12-04 22:32:08 889

原创 MySQL 全面解析:发展历史、核心定位、技术架构、设计理念、版本选择与优势对比(万字详解)

MySQL 是一个关系型数据库管理系统(RDBMS),由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的开源数据库之一,广泛应用于 Web 应用程序、企业级应用和云服务中。核心特点开源免费:社区版完全开源,遵循 GPL 协议跨平台:支持 Linux、Windows、macOS 等多种操作系统高性能:优化的存储引擎,支持高并发读写易用性:SQL 标准支持,学习曲线平缓可扩展:支持主从复制、分库分表等扩展方案三大核心优势性能优异:读多场景下性能极佳易于使用。

2025-12-03 14:22:13 704

原创 「后端运维」常用操作

record-size 参数指定每条消息的大小,它将使用 wc -c 命令读取 data.json 的大小。–payload-file 参数指定要发送的文件的路径,这里是 data.json。这个命令将使用 kafka-producer-perf-test.sh 工具将 data.json 中的数据发送到指定的 Kafka topic 中。1、准备要发送的 JSON 文件。假设您有一个名为 data.json 的 JSON 文件,其中包含要发送到 Kafka 的 JSON 数据。

2025-12-02 16:45:50 232

原创 Windows 11 安装与使用 WSL 全攻略(含原理、实操与故障排查)

WSL1(2016):系统调用翻译层。没有真正的 Linux 内核,兼容性较好但不完整,I/O 性能不错,Docker 等依赖内核特性的场景受限。:引入了真实 Linux 内核,通过轻量级 Hyper-V 虚拟化运行。兼容性与容器场景全面提升,I/O 在跨盘访问时有开销;默认已成为主流。

2025-12-02 16:34:30 833

原创 如何解决MySQL 的深度分页问题?

本文,我们分析了 MySQL 的深度分页问题以及解决方案。对于 MySQL 中的深度分页,我们可以通过合理的优化策略来提高查询效率。具体选用什么方案,我们需要具体场景具体分析,但是核心还是在于理解数据库的工作原理,利用索引、优化查询策略、使用标记分页、分区表、缓存结果等些优化技术。

2025-11-30 21:45:12 617

原创 EXPLAIN 执行计划

SQL 执行计划是数据库用来执行 SQL 查询的一系列步骤的描述,显示了 SQL 查询是如何被优化器解析和执行的。通过分析执行计划,可以了解 SQL 的执行效率,并找到优化的方向。

2025-11-30 21:43:22 671

原创 MySQL InnoDB 数据存储原理详解

二级索引查询时,先找到主键值,再通过主键到聚簇索引查完整数据。避免回表:覆盖索引(查询列都在索引中)

2025-11-29 21:50:13 1152

原创 InnoDB 存储原理实际案例分析

主键选择直接影响插入性能和存储效率索引设计需要考虑查询模式和回表成本页分裂是影响写入性能的关键因素缓存命中率与数据分布密切相关复合索引能有效减少回表和提高选择性在实际项目中,需要根据具体的业务场景和查询模式来设计最优的存储结构。

2025-11-29 21:47:44 239

原创 【探索实战】Kurator 从 0 到 1 的落地体验:一次真实的多集群云原生治理实践

从最初的试用到现在的深度实践,我越来越认为 Kurator 是面向分布式云原生的下一代治理平台。它通过标准化的抽象,将多集群治理、应用分发、流量治理、监控体系等能力统一构建起来,让原本复杂的分布式平台管理变得清晰、可控。如果你正在寻找一个能让多集群变得“可运营”的开源方案,那么 Kurator 值得你深入体验。

2025-11-28 13:47:53 1487

原创 一文吃透 MySQL 索引:是什么、有哪些、原理何在、为何必备?

维度核心要点本质排好序的快速查找数据结构,空间换时间核心作用加速查询、优化排序/分组、避免全表扫描、辅助关联查询主流类型B+树索引(聚簇索引、二级索引)、唯一索引、普通索引、联合索引(最常用)底层原理B+树通过“平衡结构+叶子节点双向链表”,实现低 I/O 快速查找(3-4 层高度)适用场景大表、高频查询字段、关联字段、排序/分组字段注意事项写操作会维护索引(轻微损耗);联合索引需遵循最左前缀原则;避免过度建索引。

2025-11-28 08:46:03 1508

原创 left join、right join、inner join、union join 的区别

关联查询是通过主外键关联从多个表中提取数据的方式,主要有四种类型: INNER JOIN:仅返回两表匹配的记录(交集) LEFT JOIN:保留左表所有记录,右表无匹配时显示NULL RIGHT JOIN:保留右表所有记录,左表无匹配时显示NULL UNION JOIN(MySQL需模拟):返回两表所有记录(并集) 关键区别在于处理无匹配记录的方式和结果集范围。实际开发中需根据业务需求选择,同时注意关联条件使用ON子句而非WHERE,并优化索引提升性能。

2025-11-27 14:10:48 1195

原创 MySQL 日志详解

特性redo.log(重做日志)undo.log(回滚日志)binlog(二进制日志)所属层级InnoDB 存储引擎层InnoDB 存储引擎层MySQL 服务器层(所有引擎)日志类型物理日志(数据页修改)逻辑日志(反向 SQL/原始值)逻辑日志(SQL/行修改,默认 ROW)核心目标保障事务持久性(崩溃恢复)保障事务原子性(回滚)+ 支持 MVCC主从复制 + 时间点恢复写入方式循环写(固定大小,覆盖旧日志)追加写(事务链,purge 清理)

2025-11-27 10:18:18 1497 1

elasticsearch-6.5.3.zip

elasticsearchelk组件下载,统一版本号6.5.3,windows版本,jdk要求1.8,logstash-6.5.3.tar.gz,kibana-6.5.3-linux-x86_64.tar.gz,elasticsearch-6.5.3.tar.gz,elk stack。

2020-08-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除