05 存储引擎

Wu Jun 2018-12-18 21:53:35
07 数据库 > 01 MySQL

在文件系统中,MySQL 将每个数据库保存为数据目录下的一个子目录。

创建表时,MySQL 会在数据库子目录下创建一个和表同名的 .frm 文件保存表的定义。

不同的存储引擎保存数据和索引的方式是不同的,但表的定义则是在 MySQL 服务层统一处理的。

1 InnoDB

2 MyISAM

3 选择合适的引擎

3.1 选择 InnoDB

大部分情况下,InnoDB 都是正确的选择。

除非需要用到某些 InnoDB 不具备的特性,并且没有其他办法可以替代,否则都应该优先选择 InnoDB 引擎。

如果要用到全文索引,建议优先考虑 InnoDB 加上 Sphinx 的组合,而不是使用支持全文素引的 MyISAM。

3.2 选择 MyISAM

如果不在乎可扩展能力和并发能力,也不在乎崩溃后的数据丢失问题,却对 InnoDB 的空间占用过多比较敏感,这种场合下选择 MyISAM 就比较合适。