存储引擎概述

 

存储引擎是数据库底层软件组件,负责数据的存储、检索和管理。MySQL 的核心特性之一就是支持多种存储引擎,允许用户针对不同表选择最适合的引擎。

 

查看支持的存储引擎

 

SHOW ENGINES;

 

结果中的 `Support` 列含义:

 `YES`:支持使用

 `NO`:不支持使用

 `DEFAULT`:当前默认存储引擎

 

MySQL 主要存储引擎对比


存储引擎描述主要特点
InnoDB具备外键支持的事务处理引擎支持事务、行级锁、外键,MySQL 5.5+ 默认引擎
MyISAM主要的非事务处理存储引擎不支持事务、表级锁、全文索引、较高的读取性能
MEMORY置于内存的表(原HEAP)数据存储在内存中,速度快但服务器重启后数据丢失
ARCHIVE用于数据存档的引擎数据插入后不能修改,不支持索引,高压缩比
CSV以逗号分隔值格式存储数据数据以文本形式存储,可直接用文本编辑器查看
BLACKHOLE丢弃所有写操作,返回空内容常用于复制架构和数据验证
FEDERATED访问远程表的存储引擎数据实际存储在远程数据库中
MERGE管理多个MyISAM表的集合(MRG_MyISAM)将多个结构相同的MyISAM表逻辑组合成一个表
NDBMySQL集群专用存储引擎(NDBCLUSTER)高可用性、高性能的集群环境专用引擎

                                     

重要特性说明

 

事务支持:

    支持:InnoDB

    不支持:MyISAM、MEMORY等

 

2.锁定级别:

    行级锁:InnoDB

    表级锁:MyISAM、MEMORY

 

3.外键支持:

    支持:InnoDB

    不支持:其他引擎

 

4.存储位置:

    磁盘存储:InnoDB、MyISAM

    内存存储:MEMORY

 

5. 历史名称:

    MEMORY → HEAP (已废弃)

    InnoDB → Innobase (已废弃)

 

选择建议

 

1. InnoDB:大多数情况下的首选,特别是需要事务、外键或高并发写入的场景

2. MyISAM:只读或读多写少的场景,需要全文索引时

3. MEMORY:临时数据、高速访问但可丢失的数据

4. ARCHIVE:只插入不修改的历史数据存档

 

注意事项

 

 MySQL 5.5+ 默认使用 InnoDB 引擎

 同一数据库中可以混合使用不同存储引擎的表

 存储引擎的选择会显著影响性能、并发性和功能特性

 某些引擎有特定用途(如NDB用于集群,FEDERATED用于远程访问)

点赞(1)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)