十8、Mysql存储引擎并不仅有MyISAM、InnoDB——精髓

1、MySQL的存储引擎包括MyISAM、InnoDB、NDB Cluster、Maria、Falcon、Memory、Archive、Merge、Federated等,其中使用最普遍的是MyISAM、InnoDB;在MySQL5.5.8以后InnoDB成为MySQL默认的存储引擎;
  一、MyISAM
    1)、不支持事务,不支持外键,支持全文索引,处理速度快;
    2)、MyISAM存储引擎的表存储成3个文件,文件名与表名相同,扩展名分别为:frm(存储表结构),MYD(存储表数据),MYI(存储表索引)

  二、InnoDB
    1)、支持事务,支持行锁,支持外键
    2)、表的结构存储于.frm文件中。数据和索引存储在innodb_data_home和innodb_data_path表空间中;
    3)、实现了SQL的4中隔离级别(READ UNCOMMITTED、READ COMMITTED、REPEATABLE和SERIALIZABLE)

  三、NDB Cluster
    1)、负责管理各个节点的Manage节点主机,负责集群的配置,启动关闭各节点,以及实施数据的备份恢复等
    2)、主键查找速度极快,并经过添加NDB数据存储节点能够线性的提交数据库性能,是高可用,高性能的集群系统;
    3)、查询链接操做是在数据库层完成的,开销大;

  四、Maria
    1)、支持缓存数据和索引文件,应用行锁设计,提供MVCC功能;
    2)、支持事务和非事务安全的选项,以及更好的BLOB字符类型的处理性能;

  五、Falcon
    1)、一款替代当前InnoDB存储引擎的带有事务等高级特性的数据库存储引擎,
    2)、不使用cluster索引,不支持read uncommited 隔离级别,
    3)、不支持语句级复制,为了保证日志和数据文件的一致性。
    4)、支持表空间的概念,innodb只有数据文件概念,可是数据和索引表空间不能分开。支持在线备份

  六、Memory
    1)、数据存储在内存中,表结构以文件存储于磁盘,文件名与表名相同,后缀名为frm;
    2)、默认使用哈希索引,能够按需求指定索引类型;只支持表锁,并发性能较差;
    3)、不支持VARCHAR、BLOB和TEXT的列类型;

  七、Archive
    1)、只支持INSERT、REPLACE和SELECT操做,不支持DELETE或UPDATE。它支持ORDER BY操做;
    2)、使用zlib算法将数据和进行压缩后存储;
    3)、使用行锁来实现高并发的插入操做,但不支持事务;

  八、Merge
    1)、一组MyISAM表的组合,这些表的结构必须彻底同样,查询时表合并起来使用一条查询;

  九、Federated
    1)、不存放数据,只提供对远程MySQL服务器上面的数据的访问接口算法

相关文章
相关标签/搜索