news 2026/4/3 5:31:46

进阶-存储引擎

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
进阶-存储引擎

一、MySQL进阶

在数据库的世界里,存储引擎就像房屋的"地基"。地基稳固,房屋才能屹立不倒;存储引擎强大,数据库才能高效可靠。正如建筑设计师需要根据房屋用途选择不同的地基材料,数据库开发者也需要根据业务需求选择合适的存储引擎。在MySQL中,这一选择将直接影响数据的完整性、查询性能和系统稳定性。

1. 存储引擎

1.1 MySQL体系结构

MySQL采用分层架构设计,将不同职责的组件分离,形成清晰的层次结构。这种设计使得MySQL能够灵活适应各种应用场景,同时保证系统的高效与稳定。

客户端层:数据库的"门面"(连接层)

主要是接受客户端的连接,然后完成一些连接的处理,以及认证授权的相关操作和相关的安全方案,是否超过最大连接数等;

比如:我们连接服务器的时候,输入的账号和密码就在该层进行校验,这个过程就是授权认证的过程,以及校验每一个客户端所授予的哪些的权限,能够操作哪些数据库、哪些表等。

服务层:数据库的"大脑"

绝对部分的核心功能都是在服务层完成的,像sql接口以及查询解析器、查询优化器、查询缓存等都是该层完成的,所有跨存储引擎的实现也都是在服务层完成的;

比如:DML语句、DDL封装、存储过程视图触发器等

引擎层:数据库的"心脏"

一个一个蓝色的圆筒都是一个一个的存器引擎,在mysql当中提供给了我们十分多的存储引擎,如果满足不了我们的需求,我们还可以在此基础上进行扩展,所以称之为可插拔存储引擎。注意:索引是在该层实现的,意味着不同的存储引擎索引的结构是不一样的!

存储层:数据库的"地基"

存储层: 主要就是存储数据库的相关真实数据,包含日志、数据文件等

1.2 存储引擎简介

存储引擎是数据库管理系统的核心组件,负责数据的物理存储、检索、更新和管理。它通过索引策略、事务机制和锁控制等技术实现数据高效操作。

"存储引擎不是数据库的'装饰品',而是数据库的'灵魂'。"
——《MySQL高级架构设计》

MySQL支持多种存储引擎,每种引擎针对不同的业务场景优化。理解这些引擎的差异,是构建高性能、可靠数据库系统的关键。

-- 查询建表语句,默认引擎为:InnoDB show create table account; -- 查询当前数据库支持的存储引擎 show engines; -- 创建表 my-myisam,并指定MyISAM存储引擎 create table my_myisam( id int, name varchar(10) ) engine = MyISAM; -- 创建表 my-memory,并指定Memory存储引擎 create table my-memory( id int, name varchar(10) ) engine = Memory;

1.3 存储引擎的特点

InnoDB介绍

innodb_file_per_table:默认一直是打开On的,意味着每创建一个表都是有一个.ibd为后缀的文件,该文件包含了:表结构、数据和索引等数据。

核心特点

  • ✅ 支持ACID事务
  • ✅ 行级锁(非表级锁)
  • ✅ 支持外键约束
  • ✅ 崩溃后可恢复
  • ✅ 支持MVCC(多版本并发控制)

Page页是磁盘操作的最小单元,一个区的大小是固定的1M(兆)。一个页的大小也是固定的16K

一个区里面可以包含64个页。

适用场景

  • 金融交易系统
  • 电商订单系统
  • 高并发读写业务

MySQL 5.5+默认存储引擎,也是现代应用的首选。

MyISAM介绍

核心特点

  • ❌ 不支持事务
  • ❌ 表级锁(写操作会阻塞所有读操作)
  • ❌ 不支持外键
  • ✅ 读操作性能极高
  • ✅ 磁盘空间占用小

在磁盘中涉及了三种文件MYD\MYI\sdi。sdi存储表结构、myd存放的是数据、myl代表的是索引。

适用场景

  • 博客、论坛的文章列表
  • 读多写少的静态数据存储
  • 仅用于查询的只读数据库

注意:MySQL 8.0已不再支持MyISAM,但在MySQL 5.x中仍广泛使用。

Memory介绍

核心特点

  • ❌ 不支持事务
  • ❌ 数据不持久(重启后丢失)
  • ✅ 数据存储在内存中
  • ✅ 读写速度极快
  • ✅ 适合临时数据处理

适用场景

  • 临时表、会话数据
  • 中间计算结果缓存
  • 高速数据处理(如统计分析)

1.4 存器引擎选择

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/12 0:29:40

YOLO模型量化部署:INT8如何节省40% Token开销?

YOLO模型量化部署:INT8如何节省40% Token开销? 在智能制造工厂的质检流水线上,一台边缘设备正以每秒30帧的速度分析高清摄像头传来的图像——焊点是否虚焊、零件有无错位、外壳是否存在划痕。这些任务背后,是YOLO模型在默默运行。…

作者头像 李华
网站建设 2026/3/30 0:09:52

for-each与常规for循环的效率区别

for-each与常规for循环的效率区别 章节目录 for-each与常规for循环的效率区别 执行效率:在大多数情况下,常规for循环的执行效率比for-each循环高。这是因为for-each循环需要额外的步骤来获取集合或数组中的元素,而常规for循环可以直接通过索…

作者头像 李华
网站建设 2026/4/3 4:44:42

安防监控+YOLO完美组合?揭秘高并发场景下的Token使用优化

安防监控与YOLO的深度协同:高并发场景下的Token机制优化之道 在智慧交通、城市天网和大型园区安防等现实场景中,成百上千路摄像头同时运行已成常态。面对如此庞大的视频流输入,系统不仅要“看得清”,更要“反应快”——这正是现代…

作者头像 李华
网站建设 2026/3/31 9:25:49

Matlab实现基于双闭环PID控制的一阶倒立摆系统设计

Matlab 基于双闭环PID控制的一阶倒立摆控制的系统设计实验完整版,源文件,仿真图,实验报告,东西都在视频里最近做了个超有趣的实验——Matlab基于双闭环PID控制的一阶倒立摆控制的系统设计,迫不及待想跟大家分享。实验相…

作者头像 李华
网站建设 2026/4/2 3:24:21

三电平BUCK变换器仿真:电压闭环与中点平衡控制之旅

三电平BUCK变换器仿真,电压闭环控制,带中点平衡控制。最近在研究电力电子领域的三电平BUCK变换器,这玩意儿可有点意思,今天就来和大家唠唠它的电压闭环控制以及中点平衡控制,顺便分享下仿真相关的事儿。 三电平BUCK变换…

作者头像 李华