
目录
1、存储引擎总结对比
2、存储引擎明细对比
2.1、MyISAM
2.2、MEMORY
2.3、InnoDB(默认)
3、存储引擎选择
问题:MySQL有哪些存储引擎?默认是哪个?有什么区别?如何选择存引擎?
在mysql5之后,支持的存储引擎有9种,但是常用的就那么几种,而且默认支持的是InnoDB。
我们可以使用命令来看看当前数据库可以支持的存储引擎有哪些。
show engines;
也可以查询当前表使用什么存储引擎: SHOW TABLE STATUS from 数据库库名 where Name=’表名’
SHOW TABLE STATUS from user_db where Name='t_user';
不同的存储引擎都有各自的特点,以适应不同的需求,如表所示,下面我们来对常用的3种存储引擎进行一个对比。为了做出选择,首先要考虑每一个存储引擎提供了哪些不同的功能。
| 功能 | MyISAM | MEMORY | InnoDB |
|---|---|---|---|
| 存储限制 | 256TB | RAM | 64TB |
| 支持事务 | NO | NO | YES |
| 支持全文索引 | YES | NO | NO |
| 支持B树索引 | YES | YES | YES |
| 支持HASH索引 | NO | YES | NO |
| 支持数据缓存 | NO | NO | YES |
| 支持数据压缩 | YES | NO | NO |
| 空间使用率 | 低 | N/A | 高 |
| 支持外键 | NO | NO | YES |
主要特点:不支持事务,也不支持外键,存储速度、访问速度快,表级锁定,对事务完整性没有要求或者以SELECT、INSERT为主的应用基本都可以使用这个引擎来创建表;
磁盘存储文件:每个MyISAM在磁盘上存储成3个文件,其中文件名和表名都相同,但是扩展名分别为:
支持3种不同的存储格式:
使用哪一种引擎需要灵活选择,一个数据库中多个表可以使用不同引擎以满足各种性能和实际需求,使用合适的存储引擎,将会提高整个数据库的性能。 选择合适的存储引擎的标准可以分为:
然后按照标准,选择对应的存储引擎即可。