IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:存储引擎

共 8 篇相关文章

IT 累计浏览 2,479

mysql技术内幕-innodb存储引擎读书笔记(中)

这篇读书笔记聚焦于InnoDB存储引擎的核心章节——“表”。作者没有停留在概念介绍,而是直接带读者钻入InnoDB的物理世界,剖析一张表在磁盘上究竟是如何被“切分”和“管理”的。 文章详细拆解了InnoDB存储的基本单位——“页”(Page)的结构与组织方式,解释了数据如何被高效地读写。在此基础上,进一步探讨了记录在页中的存储格式(行格式)以及表空间(Tablespace)这一更宏观的物理组织概念,清晰地勾勒出从逻辑表到物理磁盘文件的映射路径。这种自底向上的视角,揭示了InnoDB为保证性能与事务特性而在存储层面所做的精巧设计。 理解这些底层的“骨架”,对于深入分析锁机制、优化查询性能乃至诊断存储相关的故障,都至关重要。

IT 累计浏览 2,842

mysql技术内幕-innodb存储引擎读书笔记(上)

这篇笔记出自《MySQL技术内幕》,作者从MySQL的宏观架构讲起,梳理了从客户端连接到最终数据落地的完整路径。文章将复杂的系统拆解为连接管理、SQL解析、优化器、执行器以及存储引擎等层次,清晰地展示了MySQL高度模块化的设计思想。 重点落在了存储引擎抽象层,并着重对比了两种经典引擎:MyISAM与InnoDB。笔记不仅指出了InnoDB在事务支持、行级锁以及崩溃恢复上的核心优势,也客观分析了MyISAM在读密集型简单查询场景下因其简单结构带来的性能特点。 对于初学者而言,这种自顶向下的讲解方式,有助于快速建立起对MySQL工作原理的整体认知,而不是迷失在单一功能的细节中。

IT 累计浏览 3,150

Innodb Log写入方式分析

这篇讲的是InnoDB存储引擎如何将日志写入磁盘的底层机制。作者从日常被关注的`log file writes`操作切入,通过分析Percona的代码和测试数据,拆解了从产生日志到最终落盘的全过程。 核心在于揭示了写入操作并非简单的顺序追加,而是由一系列事件触发,并涉及到log buffer、文件系统缓存和实际I/O的多级协作。文章重点剖析了事务提交时强制刷盘的典型路径,以及后台线程如何在不同条件下(如log buffer接近满)触发写入。 一个关键的技术点是,作者指出了写入操作可以合并,即一次系统调用(如`fsync`)可能对应多个事务的日志写入,这便是性能优化的基础。文章还关联了checkpoint机制,说明了日志写入的完整生命周期。 通过这样的分析,能帮助我们理解为什么调整`innodb_log_buffer_size`或`innodb_flush_log_at_trx_commit`等参数会产生不同效果,为排查日志I/O相关的性能问题提供了清晰的原理支撑。

IT 累计浏览 3,799

MyISAM和InnoDB两种“引擎”的区别

这篇讲的是MySQL里最经典的两种存储引擎——MyISAM和InnoDB的对比。作者从“存储引擎到底是什么”这个基础概念切入,直接拆解了两者在底层设计上的核心差异。关键区别包括事务支持、锁的粒度(表锁 vs 行锁)、外键约束以及崩溃恢复能力。文章还特别提到了一个容易被忽略的细节:在旧版MySQL中,MyISAM其实是默认引擎,而InnoDB后来居上成为主流,这背后是业务对数据安全性和并发性能要求不断提升的体现。 具体到场景选择,文章给出了很清晰的结论:如果你的应用是读多写少、对事务完整性要求不高(比如日志或统计表),MyISAM的简单高效可能更有优势;但凡是涉及订单、用户等需要事务、行级锁和高并发写入的核心业务,InnoDB几乎是必选项。理解这些差异,能帮助开发者在设计数据库表时做出更合理的技术选型。

IT 累计浏览 3,700

MySQL Infobright 数据仓库快速安装笔记[原创]

这篇笔记详细介绍了与MySQL集成的开源数据仓库软件Infobright。作者指出,Infobright作为一个专用存储引擎,能无缝融入MySQL生态,其SELECT查询语句与普通MySQL无异。 文章重点剖析了Infobright的核心优势:基于列式存储,它能在百万到亿级数据规模下,将复杂分析查询(如SUM、COUNT、GROUP BY)的速度提升至普通引擎的5到60倍,同时实现高达18:1的数据压缩比,能高效处理TB级数据。这些特性使其无需预建索引或分区,非常适合大规模数据分析场景。 当然,作者也坦诚说明了它的限制:社区版仅支持通过LOAD DATA INFILE批量导入数据,不支持常规的INSERT/UPDATE/DELETE操作,且并发查询能力有限(约10余个连接)。因此,它更适用于数据批量加载后进行只读分析的场景,而非需要实时更新的在线事务系统。

IT 累计浏览 3,736

XtraDB/Innodb内部结构示意图

这篇讲的是InnoDB存储引擎内部结构的直观指南。作者从源码出发,梳理了InnoDB各核心组件间的复杂关系与协作流程,画出了一张清晰的层次示意图。 图中从上到下涵盖了客户端连接、SQL解析优化、缓冲池管理、事务与锁、到最底层的表空间与数据文件的完整链路。特别点出了Buffer Pool、Change Buffer、Log Buffer等关键内存结构,以及它们与磁盘文件的交互。对于理解一次写操作如何经过多层模块最终持久化非常直观。 这张图并非空泛的框架示意,而是基于真实代码逻辑绘制,细节到位。作者甚至提到,这张图“可以打印出来贴在座位旁边”,其作为日常开发与故障排查参考的实用性可见一斑。对于想深入理解MySQL/InnoDB工作原理的开发者来说,这是一份能帮你在脑中建立清晰心智模型的宝贵资料。

IT 累计浏览 3,989

MySQL数据库存储引擎和分支现状

这篇文章梳理了MySQL在经历Sun收购与随后被Oracle接手后,所面临的发展危机与社区演化路径。作者指出,在核心开发团队相继离开、官方主线发展放缓的背景下,MySQL并未走向终结,而是通过引擎的分化与分支的创立,开启了另一条技术演进之路。 文章重点剖析了存储引擎的演变,如InnoDB的稳固地位、MyISAM的渐退,以及XtraDB等增强型引擎的出现。同时,详细介绍了由此衍生出的主要分支,如MariaDB、Percona Server与Drizzle各自的定位与技术侧重,它们分别在兼容性、性能优化与架构革新上做出了探索。 对于技术选型者而言,这篇文章的价值不仅在于回顾了关键的历史事件,更清晰地呈现了如今“MySQL生态”下不同技术选项的真实面貌与内在逻辑,为理解当下数据库格局提供了扎实的背景认知。

IT 累计浏览 1,831

XtraDB存储引擎

这篇讲的是Percona公司如何针对InnoDB的瓶颈,打造了增强版的XtraDB存储引擎。文章从2008年首个版本1.0.2-1的发布切入,梳理了XtraDB的由来。 它的核心在于“兼容且超越”。XtraDB完全兼容InnoDB的所有特性,这意味着对于现有应用是“即插即用”的替换方案,无需修改代码。但真正的价值在于底层优化:Percona团队在IO调度、锁机制、内存管理等多个关键路径上进行了重写与调优,旨在解决高并发场景下的性能瓶颈。 对于面临数据库性能压力的团队来说,这篇文章清晰地指明了一个具体的升级选项——如何在不改变应用架构的前提下,通过存储引擎层的替换获得显著的性能收益。