Mysql的引擎简单介绍。

Mysql自带引擎

    MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一
    InnoDB:用于事务处理应用程序,具有众多特性,包括ACID事务支持。
    Memory:将所有数据保存在RAM中,在需要快速查找引用和其他类似数据的环境下,可提供极快的访问。重启后表结构保留,数据丢失。
    Merge:允许MySQL DBA或开发人员将一系列等同的MyISAM表以逻辑方式组合在一起,并作为1个对象引用它们。对于诸如数据仓储等VLDB环境十分适合。
    Archive:仅支持insert、select功能,Mysql5.5后支持索引。拥有很好的压缩机制,它使用zlib压缩库,在记录被请求时会实时压缩,所以它经常被用来当做仓库使用。
    Blackhole:没有存储机制,会鹊起所有插入的数据。但是服务器会记录表的日志。所以可以用于复制数据库备份库,或者只是简单的记录日志。(不推荐)
    Federated:是访问其他Mysql服务器的一个代理。它创建一个远程Mysql服务器的客户端链接,并将查询传输到远程服务器执行。MarianDB使用它的一个改进版本叫FederatedX。
    Ndb:用于集群存储的引擎,以及分布式的、share-nothing的、容灭的、高可用的NDB数据库组合。


第三方引擎

    XtreDb:可以作为InnoDB的一个完全的替代品,性能、可测量性有提升。可以兼容读写InnoDB的数据文件,并支持InnoDB的所有查询。
    PBXT:和InnoDB相似,都支持ACID事务和MVCC。支持引擎级别的复制、外键约束,并以一种比较复杂的架构对SSB提供了合适的支持。
    Infobright:面向列的存储引擎。


社区存储引擎

    Groonga:一款全文索引引擎,号称可以提供准确而高效的全文索引。
    OQGraph:支持图操作(比如查找两点之间的最短路径)。
    Q4m:内部实现了队列操作。
    SphinxSE:为Sphinx全文索引搜索服务器提供了SQL接口。
    Spider:该引擎可以将数据切分成不同的分区,比较搞笑透明低实现了分片,并且可以针对分片执行并行查询(分片可以分布在不同的服务器上)。
    VPForMysql:支持垂直分区,通过一系列的代理存储引擎实现。垂直分区指的是可以将表分成不同的列组合,并且单独存储。但查询看到的还是一张表。该引擎和Spider的作者是同一人。

如何选择合适的引擎

        这么多存储引擎,我们怎么选择呢?其实大部分情况下,InnoDB都是正确的选择。除非用到默写InnoDB不具备的特性,并且没有其他好的办法替代否则都可以选用InnoDB引擎。比如用到全文索引,建议优先考虑InnoDB加上Sphinx的组合。而不是使用支持全文索引的MyISAM。如果不需要使用InnoDB的特性,同时其他引擎的特性能够更好地满足需求,也可以考虑一下其他存储引擎。

        如果有海量数据需要存数并处理,不妨看看greemplum。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值