MySQL: 体系结构与插件式存储引擎架构详解

《MySQL系列-InnoDB引擎01》MySQL体系结构和存储引擎 NDB有一个问题值得注意的是,NDB存储引擎的连接操作(JOIN)是在MySQL数据库层完成,而不是存储引擎层完成,这意味着复杂的连接操作,需要巨大的网络开销。TCP/IP套接字是MySQL数据库在任何平台下都提供的连接方式,也是网络中使用最多的一种方式,这种方式在TCP/IP连接上建立一个基于网络的连接请求,一般情况下客户端(client)在一台服务器上,而MySQL实例(server)在另一台服务器上,这两台服务器通过TCP/IP网络连接。而校验的标准就是根据MySQL数据库中的user权限视图。 阅读详情

体系结构分层解析


1 ) 客户端层

  • 通过MySQL连接协议(如PHP/Java/.NET/ODBC/JDBC)连接至服务器,负责连接处理、授权认证及安全控制。
  • 每个客户端连接对应独立的服务器线程,查询执行受限于单线程(单连接仅使用单CPU核心)。

2 ) 服务层(核心层)

  • 实现所有跨存储引擎的通用功能:
    • 包含查询解析器、优化器、缓存及内置函数。
    • 支持DDL/DML语句定义(如SELECT语句的数据过滤与结果返回逻辑)。
  • 关键特性:数据处理逻辑与存储引擎解耦,例如SELECT的语义由服务层统一实现,与底层存储无关。

3 ) 存储引擎层(插件式架构)

  • MySQL的核心差异化设计,支持可插拔存储引擎(如InnoDB、MyISAM、Memory等)。
  • 引擎职责:实现数据存取、索引管理及事务控制(如SELECT的数据提取逻辑由引擎具体实现)。
  • 灵活性:按表选择引擎(同一库可混用不同引擎,但需谨慎避免性能冲突)。

存储引擎特性与适用场景


存储引擎核心特性适用场景
InnoDB支持事务、行级锁、外键高并发写操作、ACID事务需求
MyISAM表级锁、全文索引读密集型场景、非事务处理
Memory数据存内存、高速读写临时表、缓存层
Archive仅支持INSERT/SELECT日志归档、历史数据存储
CSV以CSV文件存储,不支持事务数据导入导出

注意事项:

  • 引擎限制直接影响开发(如Archive引擎不支持UPDATE/DELETE,误用将报错)。
  • 性能调优需深度结合引擎特性(如InnoDB的缓冲池优化)。

架构优势与调优意义


1 ) 插件式架构优势:

  • 灵活扩展:第三方可定制引擎(如原始InnoDB由第三方开发)。
  • 性能优化:根据业务负载选择引擎(如写选InnoDB,读选MyISAM)。

2 ) 调优关键点:

  • 理解服务层与引擎层的协作机制(如查询优化器生成执行计划后,引擎执行数据提取)。
  • 避免跨引擎表关联导致的性能瓶颈。

代码示例


1 ) 原生SQL指定存储引擎

-- 创建表时显式指定引擎  
CREATE TABLE user_operations (  
    id INT PRIMARY KEY AUTO_INCREMENT,  
    operation VARCHAR(50) NOT NULL,  
    log_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP  
) ENGINE = InnoDB;  -- 关键引擎指定  
 
-- 查询当前表引擎  
SHOW TABLE STATUS LIKE 'user_operations';  

-- 创建使用Memory引擎的表(内存存储)
CREATE TABLE session_cache (
    session_id VARCHAR(36) PRIMARY KEY,
    data TEXT,
    expires_at TIMESTAMP 
) ENGINE=MEMORY;


CREATE TABLE logs (  
    log_id INT AUTO_INCREMENT PRIMARY KEY,  
    message TEXT  
) ENGINE=MyISAM;  -- MyISAM引擎适合日志类读操作  
 
-- 尝试在Archive引擎表执行UPDATE(返回错误)  
CREATE TABLE archived_data (  
    data_id INT PRIMARY KEY,  
    content BLOB  
) ENGINE=ARCHIVE;  
UPDATE archived_data SET content = 'new' WHERE data_id = 1;  -- 错误:Archive引擎不支持UPDATE  


-- 注意:混合引擎可能导致管理复杂性,但功能可行

2 ) NestJS集成TypeORM配置引擎

// user-operation.entity.ts  
import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm';  
 
@Entity({ engine: 'InnoDB' }) // 显式指定存储引擎  
export class UserOperation {  
    @PrimaryGeneratedColumn()  
    id: number;  
 
    @Column()  
    operation: string;  
 
    @Column({ type: 'timestamp', default: () => 'CURRENT_TIMESTAMP' })  
    logTime: Date;  
}  
 
// ormconfig.js (数据库连接配置)  
module.exports = {  
    type: 'mysql',  
    host: 'localhost',  
    port: 3306,  
    username: 'root',  
    password: 'password',  
    database: 'test_db',  
    entities: [__dirname + '//*.entity{.ts,.js}'],  
    synchronize: true,  
    // 驱动层引擎配置(如连接池)  
    extra: {   
        engine: 'InnoDB',  
        poolSize: 20  
    }  
};  

通过SQL的engine参数或NestJS实体装饰器,可灵活控制存储引擎,体现插件式架构优势。开发透明性体现在:业务逻辑(如Service层)无需感知底层引擎差异。

总结


MySQL的三层体系结构(客户端层、服务层、存储引擎层)通过分离数据处理与存储,实现高度灵活性。插件式引擎设计允许按需选型(如事务需求选InnoDB,速度优先选Memory),但需注意引擎限制(如CSV不支持更新操作)和混合使用风险。深入理解此架构是性能调优的基础(如线程模型优化CPU绑定问题),需结合具体引擎特性实践。

MySQL的插件式存储引擎架构通过解耦服务层与存储层,实现了灵活性(按需选引擎)与高性能(针对性优化)。开发需关注:

  1. 服务层统一SQL语义,存储引擎负责物理存取;
  2. 引擎选择直接影响事务支持、锁机制及并发性能;
  3. 调优需结合体系结构分层(如避免跨引擎操作、优化服务层缓存)。

MySQL体系结构是理解和优化数据库性能的关键。MySQL 通过插件式存储引擎实现查询处理、系统任务与数据存储的分离,使用户可以根据存储引擎的性能特点选择合适的数据存储方式。客户端层 负责连接处理、授权认证等,而服务层(MCQ层)实现所有跨存储引擎的功能,包括DDL和DML语句的处理。存储引擎层 是MySQL与其他数据库区别最大的地方,支持多种存储引擎,如InnoDB、MyISAM等,每种存储引擎都有其独特的优缺点。

MySQL体系结构与查询执行流程详解 Buffer Pool是数据库系统中的一种内存缓冲区,用于缓存表数据与索引数据,将磁盘上的数据加载到缓冲池中,避免每次访问都进行磁盘IO,从而加速数据访问。 阅读详情

相关推荐

告别手动拍照!用Python+JAKA机械臂+D455相机实现全自动手眼标定(附完整代码)

本文详细介绍了如何利用Python脚本实现JAKA机械臂与Intel RealSense D455相机的全自动手眼标定流程,提供从硬件配置到代码实现的完整解决方案。通过自动化标定,显著提升工业自动化中的精度和效率,适用于机器人视觉领域的二次开发需求。

weixin_30555125的博客 523

MySQL学习笔记—插件式存储引擎

MySQL学习笔记—插件式存储引擎在MySQL 5.1中,MySQL AB引入了新的插件式存储引擎体系结构,允许将存储引擎加载到正在运行的MySQL服务器中。使用MySQL插件式存储引擎体系结构,允许数据库用户为特定的应用需求选择专门的存储引擎,完全不需要管理任何特殊的应用编码要求。采用MySQL服务器体系结构,由于在存储级别上提供了一致和简单的应用模型和API,应用程序编程人员和DBA可不再考虑所

纸上得来终觉浅 3649

DO-178C详解:机载软件开发、验证与适航标准指南

DO-178C将软件划分为五个等级(A到E),这些等级是基于失效状态对航空器安全的影响而定。

qq_41854911的博客 2850

插件式存储引擎体系结构

第14章:插件式存储引擎体系结构 目录 14.1. 前言14.2. 概述14.3. 公共MySQL数据库服务器层14.4. 选择存储引擎14.5. 将存储引擎指定给表14.6. 存储引擎和事务14.7. 插入存储引擎14.8. 拔出存储引擎14.9. 插件式存储器的安全含义 14.1. 前言 在MySQL 5.1中,MySQL AB引入了新的插件式存储引擎体系结构,

ggxxkkll的专栏 945

宇树G1二次开发资料汇总

宇树科技G1是一款29自由度的商业级人形机器人,配备NVIDIA Jetson Orin NX计算平台和完整SDK生态。本文系统介绍了G1的硬件架构、29个关节配置、传感器外设、双计算单元设计等关键信息,并详细解析了软件生态体系,包括C++/Python SDK、ROS2接口、仿真工具和AI框架。开发者可通过DDS通信实现高层运动控制或底层关节级精确控制,支持快速二次开发。文档提供了网络配置、接口调用示例等实用指南,帮助开发者高效利用该平台进行人形机器人应用开发。

m0_47999117的博客 1316

Windows密码忘了怎么办?一分钟看懂Windows密码底层机制:无需重装系统也能无痕找回登录密码

忘记Windows开机密码,不一定非得重装系统!本文手把手教你通过提取NTLM Hash值实现“无痕找回密码”,无需PE、无需清除密码,对系统零修改 🛡️ 搭配mimikatz与在线解密平台,小白也能快速上手,了解Windows密码底层机制 🔐

XiaoqiangClub的博客 126

MySQL 体系结构与存储引擎

通过深入理解MySQL体系结构和存储引擎特性,可以针对不同业务场景做出最优的数据库设计和配置选择,从而获得最佳的性能和可靠性。协议支持:TCP/IP、Unix Socket、Named Pipe。:高并发写选择InnoDB,读多写少考虑MyISAM。文件:表空间文件(每个表单独文件):系统表空间、独立表空间、通用表空间。:如MySQL 8.0的哈希索引优化。使用非聚集索引(索引和数据分离):回滚日志(存储在系统表空间):接收SQL语句,返回结果。:SQL解析器,生成解析树。:查询优化器,生成执行计划。

m0_70296476的博客 1141

yocto系列讲解[实战篇]54 - 添加Qt5和生成带Qt5的SDK

为了满足读者盆友想看yocto如何添加qt5的需求,今天就开始尝试添加meta-qt5

fulinux的博客 3871

MySQL - 体系结构与存储引擎

MySQL - 体系结构与存储引擎

weixin_46619605的博客 1351

汇川Easy系列PID_AT指令弹簧质量阻尼系统闭环控制仿真测试

汇川Easy系列PLC系统PID指令(温度控制PID应用编程)

RXXW_Dor的博客 764

关于YOLOv8的面试题(持续更新中...)

本章将计划更新关于YOLOv8中可能会成为面试题的关键技术点,计划持续更新,可能想到合适的问题我就会整理下更新到本博客中。

ice 4167

mysql插件式_MySql 插件式存储引擎体系结构

14.1.前言在MySQL 5.1中,MySQL AB引入了新的插件式存储引擎体系结构,允许将存储引擎加载到正在运新的MySQL服务器中。本章介绍了插件式存储引擎体系结构,概要介绍了与MySQL一起提供的各种存储引擎,介绍了将存储引擎赋给表的方法,以及插入和拔出存储引擎的方法。14.2.概述使用MySQL插件式存储引擎体系结构,允许数据库专业人员为特定的应用需求选择专门的存储引擎,完全不需要管...

weixin_36230541的博客 292

【Claude】Invalid API key 无效密钥报错已解决

API 拒绝了你提供的 key。最高频的根因是老的/被撤销的 key 藏在某处自动加载的配置文件里,而你对此不知情。→ 检查所有可能注入 key 的来源(.env.envrc、shell 配置、IDE 设置、)→ 清除无效来源 → 用/status验证。参考:Claude Code 官方《错误参考》"身份验证"章节、社区 Invalid API key 排查记录。

博客 7923

第一部分:MySQL 基础与核心架构(第二节: 存储引擎深度解析 MySQL插件式存储引擎原理)

MySQL插件式存储引擎架构深度解析 本文系统剖析了MySQL插件式存储引擎的核心机制,主要内容包括: 架构设计:分层解析SQL层与存储引擎层的协作关系,详解标准化的Handler接口规范 引擎加载:动态加载流程与初始化机制,包含引擎注册的关键代码示例 开发基础:最小化引擎实现要素、元数据管理及Java应用交互方式 实现差异:对比事务型(InnoDB)与非事务型(MyISAM)引擎在事务处理和锁机制上的实现区别 优化技术:介绍多线程并发控制和异步IO等现代存储引擎优化方案 开发实践:提供自定义引擎开发的环境

weixin_39956506的博客 869

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

MySQL - 进阶篇 - 1. 存储引擎 - MySQL体系结构详解

连接层:处理连接与权限;服务层:负责 SQL 解析与优化;引擎层:具体的数据读写与索引维护;存储层:实现数据的持久化落地。掌握这四层结构,是深入理解 MySQL 性能瓶颈、优化策略、存储引擎选择的基础。✅ 理论上:层次清晰;插件灵活;解耦良好;可插拔式存储引擎。✅ 实战中:大厂通过分层管理让 MySQL 能适配:实时读写、复杂计算、大并发、高可用等多种场景;引擎层解耦设计让数据库真正做到按业务选型;日志与文件系统结合,是数据安全与灾难恢复的保障。在飞机中,引擎是动力之源。

tang7mj的博客 1117

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

MySQL - 深入理解MySQL体系结构与存储引擎:从基础到InnoDB核心原理

MySQL架构与InnoDB存储引擎深度解析 本文系统介绍了MySQL的三层体系结构(连接层、Server层、存储引擎层)及其SQL执行流程。重点剖析了InnoDB存储引擎的核心架构,包括内存结构(Buffer Pool、Redo Log Buffer)和磁盘结构(表空间、日志文件)。通过对比InnoDB与MyISAM的关键特性,揭示了InnoDB作为默认引擎的优势:完整的ACID事务支持、行级锁、MVCC机制以及优异的并发性能。文章还深入分析了InnoDB的线程系统设计和工作原理,为数据库性能优化提供了理

小工匠 1202

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

MySQL基础知识---------插件式存储引擎体系结构

在MySQL 5.1中,MySQL AB引入了新的插件式存储引擎体系结构,允许将存储引擎加载到正在运新的MySQL服务器中。 本章介绍了插件式存储引擎体系结构,概要介绍了与MySQL一起提供的各种存储引擎,介绍了将存储引擎赋给表的方法,以及插入和拔出存储引擎的方法。 概述 使用MySQL插件式存储引擎体系结构,允许数据库专业人员为特定的应用需求选择专门

wolangjushi的专栏 827

MySQL的插件式存储引擎架构到底是干什么的?使用场景是什么?底层原理是什么?

MySQL 的插件式存储引擎架构提供了一个开放且灵活的平台,让开发者可以根据具体的应用需求选择最合适的存储解决方案。通过将存储逻辑从核心数据库服务中分离出来,MySQL 不仅提高了系统的适应性和扩展性,还促进了技术创新和发展。

长风破浪会有时的博客 678

mysql插件式_MySQL学习笔记—插件式存储引擎

MySQL学习笔记—插件式存储引擎在MySQL 5.1中,MySQL AB引入了新的插件式存储引擎体系结构,允许将存储引擎加载到正在运行的MySQL服务器中。使用MySQL插件式存储引擎体系结构,允许数据库用户为特定的应用需求选择专门的存储引擎,完全不需要管理任何特殊的应用编码要求。采用MySQL服务器体系结构,由于在存储级别上提供了一致和简单的应用模型和API,应用程序编程人员和DBA可不再考虑...

weixin_29800471的博客 310

MySQL之体系结构和存储引擎

体系结构和存储引擎1. 定义数据库和实例2. MySQL 体系结构3. MySQL 存储引擎3.1 InnoDB3.2 MyISAM3.3 NDB3.4 Memory3.5 Archive3.6 Federated3.7 Maria3.8 BlackHole3.9 CSV4. MyISAM VS InnoDB5. 连接 MySQL5.1 TCP/IP5.2 管道5.3 共享内存5.4 UNIX 域套接字 1. 定义数据库和实例 数据库:物理操作系统文件或其他形式文件类型的集合。 实例:MySQL 数据库由

wang_zhao_的博客 909

mysql插件式_MySQL插件式存储引擎(下)

https://blog.youkuaiyun.com/u013457382/article/details/51190468在MySQL 5.1中,MySQL AB引入了新的插件式存储引擎体系结构,允许将存储引擎加载到正在运行的MySQL服务器中。使用MySQL插件式存储引擎体系结构,允许数据库用户为特定的应用需求选择专门的存储引擎,完全不需要管理任何特殊的应用编码要求。采用MySQL服务器体系结构,由于在...

weixin_42512246的博客 176

《MySQL 技术内幕》MySQL 体系结构和存储引擎

定义数据库和实例 数据库领域中很容易混淆的两个词 数据库 物理操作系统文件或其他形式文件类型的集合 实例 MySQL 数据库由后台线程以及一个共享内存区组成 数据库实例才是真正用于操作数据库文件的 在 MySQL 数据库中,数据库与实例的关系是一一对应,集群情况下,可能存在一对多的情况 MySQL 被设计为一个单进程多线程架构的数据库 实例在系统上的表现就是一个进程 M...

DChuan 490

MySql体系结构和存储引擎

title: MySql体系结构和存储引擎 关键字 关于mysql 体系结构 插件式存储引擎 关于mysql 1995年成立于瑞典并发布第一个版本 2008年2月被Sun收购 2010年1月被Oracle收购 2010年12月发布5.5版本 2012年2月发布7.2 2013念2月发布5.6 2015年10月发布5.7 2018年发布8.0 体系结构 1.连接池组件 2.管理服务和工...

Al1en的博客 240

MySQL体系结构及存储引擎

MySQL体系结构及存储引擎 前言 本文讲解MySQL的体系结构及存储引擎的概念和各类存储引擎的特性。 一. MySQL的体系结构 二.

Mekeater的博客 299

深度好文:MySQL体系结构

MySQL采用的是客户/服务器体系结构,实际是有两个程序,一个是MySQL服务器程序,指的是mysqld程序,运行在存放数据库的机器上,负责在网络上监听并处理来自客户的服务请求,根据这些请求去访问数据库的内容,再把信息回传给客户;另一个程序时MySQL客户程序,负责连接到数据库服务器,并通过向服务器发出查询命令来告知服务器需要哪些信息MySQL总体结构分为四层。

fefdfg的博客 1148

深入解析 MySQL 存储引擎架构

存储引擎作为数据库系统的核心组件,负责数据管理和物理存储。其高效运作依赖于精心设计的内存结构、磁盘文件系统以及标准化的接口交互。下面我们将深入剖析这三个关键部分的实现细节。MySQL 采用插件式存储引擎架构,支持十余种不同的存储引擎(如 InnoDB、MyISAM、Memory、Archive、CSV、Blackhole、Federated 等),但实际生产环境中常用的仅有 3-4 种。索引结构差异(B+树、哈希等)锁机制差异(表锁、行锁、意向锁等)事务支持程度(ACID 特性)

Toroto5的博客 1026
上一篇: K8S R&D: Prometheus与Kubernetes高级配置与管理实践:监控、持久化、高可用及安全机制详解
下一篇: MySQL: 数据库性能优化核心要素:硬件选型与配置策略
Wang's Blog
博客等级 码龄12年 7428粉丝 2412原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值