千家信息网

MySQL 官方存储引擎

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,存储引擎是为不同的表类型处理 SQL 操作的 MySql 组件。InnoDB 是默认的、最通用的存储引擎,也是官方推荐使用的存储引擎,除非一些特定案例。MySql 5.6 中的 CREATE TABL
千家信息网最后更新 2026年11月01日MySQL 官方存储引擎

存储引擎是为不同的表类型处理 SQL 操作的 MySql 组件。InnoDB 是默认的、最通用的存储引擎,也是官方推荐使用的存储引擎,除非一些特定案例。MySql 5.6 中的 CREATE TABLE 语句创建的表的存储引擎默认就是 InnoDB。

MySql 服务器使用的是一个可插拔存储引擎架构,它能够在运行的时候动态加载或者卸载这些存储引擎。

可以使用 SHOW ENGINES 语句来查看你的 MySql 服务器所支持的存储引擎。Support 列里的值指示出是否一个引擎可以被你使用:YES、NO 以及 DEFAULT 值分别表示某存储引擎是可用、不可用、可用并且是当前默认的存储引擎。

MySql 5.6 所支持的存储引擎

· InnoDB:MySql 5.6 版本默认的存储引擎。InnoDB 是一个事务安全的存储引擎,它具备提交、回滚以及崩溃恢复的功能以保护用户数据。InnoDB 的行级别锁定以及 Oracle 风格的一致性无锁读提升了它的多用户并发数以及性能。InnoDB 将用户数据存储在聚集索引中以减少基于主键的普通查询所带来的 I/O 开销。为了保证数据的完整性,InnoDB 还支持外键约束。

· MyISAM:表级别的锁定限制了它在读写负载方面的性能,因此它经常应用于只读或者以读为主的数据场景。

· Memory:在内存中存储所有数据,应用于对非关键数据由快速查找的场景。Memory 引擎曾被称为 HEAP 引擎。它的使用案例正在减少:InnoDB 的内存缓冲区为将大部分或全部数据保持在内存提供了一个通用并耐用的方式,NDBCLUSTER 为大分布式数据集提供了快速的 key-value 访问。

· CSV:它的表真的是以逗号分隔的文本文件。CSV 表允许你以 CSV 格式导入导出数据,以相同的读和写的格式和脚本和应用交互数据。由于 CSV 表没有索引,你最好是在普通操作中将数据放在 InnoDB 表里,只有在导入或导出阶段使用一下 CSV 表。

· Archive:黑洞存储引擎,类似于 Unix 的 /dev/null,Archive 只接收但却并不保存数据。对这种引擎的表的查询常常返回一个空集。这种表可以应用于 DML 语句需要发送到从服务器,但主服务器并不会保留这种数据的备份的主从配置中。

· NDB:(又名 NDBCLUSTER)--这种集群数据引擎尤其适合于需要最高程度的正常运行时间和可用性的应用。注意:NDB 存储引擎在标准 MySql 5.6 版本里并不被支持。目前能够支持 MySql 集群的版本有:基于 MySql 5.1 的 MySQL Cluster NDB 7.1;基于 MySql 5.5 的 MySQL Cluster NDB 7.2;基于 MySql 5.6 的 MySQL Cluster NDB 7.3。同样基于 MySql 5.6 的 MySQL Cluster NDB 7.4 目前正处于研发阶段。

· Merge:允许 MySql DBA 或开发者将一系列相同的 MyISAM 表进行分组,并把它们作为一个对象进行引用。适用于超大规模数据场景,如数据仓库。

· Federated:提供了从多个物理机上联接不同的 MySql 服务器来创建一个逻辑数据库的能力。适用于分布式或者数据市场的场景。

· Example:这种存储引擎用以保存阐明如何开始写新的存储引擎的 MySql 源码的例子。它主要针对于有兴趣的开发人员。这种存储引擎就是一个啥事也不做的 "存根"。你可以使用这种引擎创建表,但是你无法向其保存任何数据,也无法从它们检索任何索引。

对于整台服务器或整个 schema 你并不受限于使用同一种存储引擎。你可以为所有表定义存储引擎。比如,一个应用可能以 InnoDB 表为主,辅以一个 CSV 表用以导出数据到电子表格,少许 MEMORY 表用以临时工作空间。

存储引擎的选择

MySql 提供的这些存储引擎为不同的应用案例进行设计。下表为 MySql 提供的存储引擎做了一个概述:

存储引擎特性总结

特性

MyISAM

Memory

InnoDB

Archive

NDB

存储上限

NDB

RAM

64TB

无

384EB

事务支持

否

否

是

否

是

锁粒度

表

表

行

表

行

MVCC

否

否

是

否

否

地理空间数据类型支持

是

否

是

是

是

地理空间索引支持

是

否

是

否

否

B-tree 索引

是

是

是

否

否

T-tree 索引

否

否

否

否

是

Hash 索引

否

是

否

否

是

全文检索索引

是

否

是

否

否

聚集索引

否

否

是

否

否

数据缓存

否

N/A

是

否

是

索引缓存

是

N/A

是

否

是

数据压缩

是

否

是

是

否

数据加密

是

是

是

是

是

支持数据库集群

否

否

否

否

是

支持主从

是

是

是

是

是

支持外键

否

否

是

否

否

备份/时间点恢复

是

是

是

是

是

支持查询缓存

是

是

是

是

是

更新数据字典的统计

是

是

是

是

是

注意

· InnoDB 在 MySQL 5.7.5 及以后的版本才支持地理空间索引

· InnoDB 通过其自适应哈希索引的特性内置进行哈希索引优化

· InnoDB 在 MySql 5.6.4 及以后版本才能支持 FULLTEXT 索引

· MyISAM 只能在行压缩格式时支持数据压缩。使用了行压缩的 MyISAM 表只读

· InnoDB 表压缩要求 InnoDB Barracuda 文件格式

· MySql 的数据加密是由服务器的加密函数提供,并非存储引擎

· 主从支持、备份/时间点恢复等功能也是由服务器提供,而并非存储引擎

引擎 存储 数据 支持 索引 否否 服务器 服务 应用 版本 场景 格式 空间 不同 主从 内存 地理 备份 时间 案例 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技工作委员会主任 为想互联网科技怎么样 今日互联网科技 有马互联网科技 银优互联网科技有限公司 郑州华宇互联网科技 恒生互联网科技指数跳水 互联网科技研发水平 洛阳共同富裕互联网科技有限公司 华夏恒生科技与互联网科技 互联网行业科技股 晋城互联网科技 互联网科技如何创业 互联网方面的科技前沿 智帮互联网科技公司最近动向 互联网相关科技技术 广东鹅鹅鹅互联网科技有限公司 上海同邻互联网科技有限公司规模 科技互联网专业务虚会材料 每日互联网科技新闻 湖北九亚互联网络科技有限公司 互联网是不是新科技 安控科技rtu产品工业互联网 洛阳昕诺飞互联网科技有限公司 互联网在线教育科技创业 智帮互联网科技公司最近动向 杭州披云加互联网科技有限公司 互联网科技接地气 互联网领先科技活动 互联网大会出现的黑科技
0