使用show engines
可以查看安装的MySQL
的引擎相关信息
MySQL
的引擎不止这么多,这只是安装的这个版本有的引擎。可以看到,只有 InnoDB
支持事务,其他的引擎都是不支持事务的。
说几个我了解的比较多的引擎:
InnoDB
InnoDB
是MySQL
现在的默认引擎,它是面向在线事务处理(OLTP
)的应用,支持行锁,外键,以及非锁定读。每张表存储在一个独立的ibd
文件中。一般用于修改比较频繁的场景。
MyISAM
MyISAM
它是面向OLAP
的数据库应用,不支持事务,不支持行锁,支持表锁,全文索引。存储文件包括 MYI
和 MYD
,MYD
用来存放数据文件,MYI
用来存放索引文件。一般用于查询较多,修改较少的场景
Memory
Memory
引擎的数据存放在内存内,查询速度快,一般可以用作临时表或者缓存类的
Archive
Archive
引擎只支持INSERT
和SELECT
操作,保存的数据占用的空间少,一般用于存储归档数据
NDB
NDB
是一个集群存储引擎,数据全部放在内存中,不知道适合什么样的场景。