3.第三方存储引擎:
1.OLTP类:
XtraDB:InnoDB的改进版本。
PBXT:类似InnoDB,但提供引擎级别的复制和外键约束,适当支持SSD存储。
TokuDB(开源):支持分形树索引结构,支持海量数据的分析。
2.列式存储引擎:MySQL默认是面向行的存储
Infobright: 支持数十TB的数据量,为数据分析和数据仓库设计的。数据高度压缩。
InfiniDB:可以在一组集群间做分布式查询,有商业版但没有典型应用案例。
3.社区存储引擎:
Aria:解决MyISAM崩溃安全恢复问题,并能够进行数据缓存。
Groona: 全文索引引擎。
QQGraph: 由Open query研发支持图操作,比如查找两点间最短距离。
SphinxSE: 该引擎为Sphinx全文索引搜索服务器提供SQL接口。
Spider: 支持sharding并能够基于分片实现并列查询。
VPForMySQL: 支持垂直分区。
4.存储引擎选取参考因素
1.是否有事务需求
如果需要事务支持最好选择InnoDB或者XtraDB,如果主要是select和insert操作MyISAM比较合适,一般使用日志型的应用。
2.备份操作需求
如果能够关闭服务器进行备份,那么该因素可以忽略,如果需要在线进行热备份,则InnoDB引擎是一个不错的选择。
3.故障恢复需求
在对恢复要求比较好的场景中推荐使用InnoDB,因为MyISAM数据损坏概率比较大而且恢复速度比较慢。
4.性能上的需求
有些业务需求只有某些特定的存储引擎才能够满足,如地理空间索引也只有MyISAM引擎支持。所以在应用架构需求环境中也需要管理员折衷考虑,当然从各方面比较而言,InnoDB引擎还是默认应该被推荐使用的。
5.表引擎转换方法
1.直接修改
2.备份修改
利用mysqldump备份工具将数据导出,修改create table语句中的存储引擎选项。注意修改的同时修改表名。
3.创建插入