news 2026/7/15 5:45:53

进阶-存储引擎

作者头像

张小明

前端开发工程师

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/7/1 12:15:29

YOLO与Grafana仪表盘联动:可视化展示系统运行指标

YOLO与Grafana仪表盘联动:可视化展示系统运行指标 在某智能工厂的质检产线上,运维人员突然发现视觉检测系统的误检率在凌晨时段显著上升。没有日志报警,模型也未报错——一切“看起来”正常。然而通过后台监控图表却发现,那一时段…

作者头像 李华
网站建设 2026/7/1 9:40:18

YOLO在智慧农业中的尝试:作物识别与病虫害预警

YOLO在智慧农业中的尝试:作物识别与病虫害预警 在广袤的麦田上空,一架无人机正低速飞行,镜头扫过一片片绿意盎然的作物。它不再只是拍摄风景——几秒钟后,系统已自动标记出三处叶片发黄区域,并判断为“条锈病早期症状”…

作者头像 李华
网站建设 2026/7/12 5:41:24

YOLO模型蒸馏技术探索:用小模型逼近大模型精度

YOLO模型蒸馏技术探索:用小模型逼近大模型精度 在工业视觉系统日益普及的今天,一个现实矛盾始终困扰着工程师:我们既需要高精度的目标检测能力来识别细微缺陷或复杂场景,又必须面对边缘设备算力有限、功耗敏感的硬约束。比如&…

作者头像 李华
网站建设 2026/7/1 12:15:31

YOLO与InfluxDB时序数据库对接:记录历史性能数据

YOLO与InfluxDB时序数据库对接:记录历史性能数据 在智能制造工厂的视觉检测线上,一台搭载YOLO模型的边缘设备正以每秒200帧的速度识别电路板上的焊点缺陷。突然,FPS开始缓慢下降——没人注意到这一变化,直到三天后批量误检导致产线…

作者头像 李华
网站建设 2026/7/8 6:44:23

西门子1200立库机器人码垛机伺服视觉AGV程序大揭秘

西门子1200立库机器人码垛机伺服视觉AGV程序 包括2台西门子PLC1215程序和2台西门子触摸屏TP700程序 PLC与工业相机视觉定位及机器人使用Modbus TCP通讯 PLC和码垛机Modbus TCP通讯(SCL语言) PLC和4台G120变频使用Profinet通讯 1个伺服轴,AGV …

作者头像 李华
网站建设 2026/7/11 6:07:43

基于 MATLAB 的一维数据二分类

基于MATLAB的一维数据二分类在数据分析和机器学习的世界里,二分类问题是最基础也是最常见的任务之一。今天咱们就来聊聊如何使用 MATLAB 对一维数据进行二分类。 问题背景 假设我们有一组一维的数据,这些数据可以是各种测量值,比如温度、压力…

作者头像 李华