十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服務器上面的數據的訪問接口算法

相關文章
相關標籤/搜索