MySQL:存储引擎简介

此处借用一下整理的对比图表

InnoDB 存储引擎

  • 功能简介

    • 支持事务

    • 行锁设计

    • 支持外键

    • 非锁定读

    • 多版本并发控制(MVCC)

    • next-key locking

    • 插入缓冲(insert buffer)

    • 二次写(double write)

    • 自适应哈希索引(adaptive hash index)

    • 预读(read ahead)

  • 存储 构成

    • idb 文件

    • frm 文件

  • 适用场景: 在线事务处理(OLTP)

  • 缺点:不适用于分析类语句,连表查询不建议超过三张表 

MyISAM 存储引擎

  • 功能简介

    • 全文索引

    • 缓冲池之缓存(cache)索引文件,不缓冲数据文件

  • 存储构成

    • MYD(数据文件)

    • MYI(索引文件)

  • 适用场景: 分析类查询(OLAP)

  • 缺点: 不支持事务

NDB 存储引擎

  • 功能简介

    • 集群存储引擎(类似 RAC),share nothing集群架构

    • 通过添加存储节点线性提高数据库性能

  • 存储 构成

    • 数据全部在内存中

  • 缺点: 复杂的连接操作需要巨大的网络开销,查询速度慢

Memory 存储引擎

  • 功能简介

    • 只支持表锁

  • 存储构成

    • 数据在内存中

  • 适用场景

    • 作为临时表使用

  • 缺点

    • 重启或崩溃,数据将消失

    • 只支持表锁,并发性能差

    • 不支持 TEXT 和 BLOB 列类型

    • 存储变长字段时按照char的方式进行

    • 大于Memory存储引擎表的容量设置,会转换为MyISAM存储形式,性能会有损失

Archive 存储引擎

  • 功能简介

    • 只支持 INSERT 和 SELECT

    • 支持行锁来实现高并发插入操作

  • 存储构成

    • zlib算法压缩存储

  • 适用场景: 适合存储归档数据

  • 缺点: 不支持事务安全

Maria 存储引擎

  • 支持功能

    • 缓存数据

    • 索引文件

    • 行锁设计

    • 支持 MVCC

    • 支持事务和非事务安全

    • 更好的BLOB字符类型的处理性能

请使用浏览器的分享功能分享到微信等