MySQL可用的存储引擎有很多,那怎么选择呢?在大多数情况下,选择InnoDB引擎就对了,从MySQL5.5版本开始将InnoDB引擎作为默认存储引擎了(官方指明了方向)。
如果应用需要不同的存储引擎,请先考虑以下几个因素:
1、事务
如果需要事务,InnoDB(或者XtraDB)是目前最稳定并且经过验证的选择。如果不需要事务,并且主要是SELECT和INSERT操作,那么MyISAM是不错的选择。
2、备份
如果可以定期地关闭服务器来执行备份,那么备份的因素可以忽略。反之,如果需要在线热备份,那么选择InnoDB就是基本的要求。
3、崩溃恢复
数据量比较大的时候,系统崩溃后需要快速恢复。相对而言,MyISAM崩溃后发生损坏的概率比InnoDB要高很多,而且恢复速度也要慢。
4、特有的特性
有些应用可能依赖一些存储引擎所独有的特性或者优化,比如很多应用依赖聚簇索引的优化。另外,MySQL中也只有MyISAM支持地理空间搜索。