目录
存储引擎分类
MYISAM
MySQL 5.5.5之前的默认存储引擎。
- 支持大文件,通常认为是256TB,一般来讲没有限制,但是受操作系统的影响;
- 适合读多写少的应用场景;
- 每个MYISAM表的最大索引数是64,可以通过编译改变;
- BLOB和TEXT类型可以被索引;
- 支持全文索引;
- 仅支持表锁,无论读锁,还是写锁;
- 非事务性引擎,不支持事务操作;
- .frm文件存储表定义,.MYD数据文件,.MYI索引文件;
举个栗子:
mysql> create table t2 (id int) engine = MYISAM;
Query OK, 0 rows affected (0.01 sec)
这个 engine 如果不写,默认的是innodb。
InnoDB
目前MySQL的默认存储引擎。
- 事务性引擎;
- 不仅支持表锁,而且还支持行锁和外键,对性能的影响要好的多;
- 为巨大数据量的最大性能设计;
- .ibdata1自动扩展数据文件,ib_logfile0/1日志文件;
MEMORY
- 将数据存储到内存中的存储引擎;
- 快;
- 不支持BLOB和TEXT列;
- 非事务性引擎;
- 内存,断电丢失;
- 读写频繁,Session值,操作ID;
NDB
- 用于MySQL Cluster的集群存储引擎;
- 提供数据层面上的高可用性;
- 多表查询等复杂性查询性能相对不是优势,速度上差的很多和其他引擎比较;
- 尚在不断完善中......