【高效MySQL】MySQL存储引擎

一、引擎分类

1)InnoDB(默认存储引擎)

● 特性

○ 完整 ACID 事务支持:通过 redo log(重做日志)和 undo log(回滚日志)实现崩溃恢复与事务回滚。

○ 行级锁 + MVCC:提升并发性能,减少锁冲突(如高并发订单系统)。

○ 外键约束:保证数据完整性,级联更新/删除。

○ 聚簇索引:数据文件与索引文件绑定(.ibd),数据按主键物理顺序存储,主键查询效率高。

● 适用场景:

○ OLTP 系统(如电商交易、银行转账)

○ 高并发读写场景

○ 需要外键约束的业务

● 5.7&5.8版本物理存储结构

○ 在版本5.7中创建一张普通的InnoDB表,在数据库的data目录下会生成2个文件:*.frm 表结构文件,*.idb 数据文件。

image.png

○ 在版本8.0中创建一张普通的InnoDB表,只在数据库的data目录下生成1个文件:*.idb数据文件;表的元数据信息存储在了系统表information_schema.COLUMNS中.

select * from information_schema.`COLUMNS` where table_name = 't1'
image.png

2)MyISAM

● 特性:

○ 高速读取:存储结构分为数据文件(.MYD)和索引文件(.MYI),非聚簇索引(索引与数据分离),适合全表扫描。

○ 全文索引:支持 FULLTEXT 索引(MySQL 5.6前唯一选择)。

○ 表级锁:不支持事务和行级锁,写入时锁定整张表,并发性能差。

● 适用场景:

○ 读密集型应用(如日志分析、报表生成)

○ 静态数据存储(如配置表、历史数据归档)

○ 只读或读写较少的场景(如博客、新闻网站)

● 5.7&5.8版本物理存储结构

○ 在版本5.7中创建一张普通的MyISAM表,在数据库的data目录下会生成3个文件:*.frm表结构文件,*.MYD数据文件,*.MYI索引文件。

image.png

○ 在版本8.0中创建一张普通的MyISAM表,只在数据库的data目录下会生成3个文件:*.MYD数据文件,*.MYI索引文件,*.sdi序列化存储的元数据信息;同时表的元数据信息也在系统表information_schema.COLUMNS中存储了一份。

image.png
select * from information_schema.`COLUMNS` where table_name = 't2';
image.png

3)Memory

● 特性:

○ 内存存储:数据完全驻留内存,读写延迟低。

○ 无持久化:不支持事务,服务器重启后数据丢失。

○ 表级锁:仅支持哈希索引或 B-Tree 索引。

● 适用场景:

○ 会话缓存(如用户登录状态)

○ 临时结果集(如中间计算数据)

4)NDB Cluster

● 特性:

○ 分布式架构:数据分片存储于多节点,支持高可用。

○ 事务支持:与 InnoDB 类似,但需搭配 MySQL Cluster 使用。

● 适用场景:

○ 电信级高可用系统

○ 实时计费系统

二、引擎对比

特性 InnoDB MyISAM Memory NDB
事务支持
锁粒度 行级锁 表级锁 表级锁 行级锁
外键约束
全文索引 ✅ (5.6+)
存储位置 磁盘 磁盘 内存 内存/磁盘
崩溃恢复
压缩能力 表压缩 只读压缩

三、附录

3.1、查询当前数据支持的存储引擎

SHOW ENGINES
image.png

● Engine:支持的引擎名称

● Support:是否支持,DEFAULT表示默认存储引擎,YES表示支持,NO表示不支持

● Comment:存储引擎的备注

● Transactions:是否支撑事务,YES表示支持,NO表示不支持

● XA:是否支持 XA 分布式事务(跨多个数据库的协调事务),YES表示支持,NO表示不支持

● SavePoints:是否支持 保存点(Savepoint),允许事务部分回滚,YES表示支持,NO表示不支持 3.2、创建表指定存储引擎 ● 直接使用SQL语句指定存储引擎,不指定默认为InnoDB

CREATE TABLE t1 (i INT) ENGINE = InnoDB;
CREATE TABLE t2 (i INT) ENGINE = MyISAM;
CREATE TABLE t3 (i INT) ENGINE = MEMORY;

● Navicat中创建表在Options中选择指定存储引起

image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容