ITPub博客

首页 > 数据库 > MySQL > MySQL:存储引擎简介

MySQL:存储引擎简介

原创 MySQL 作者:Ryan_Bai 时间:2020-11-05 09:41:57 0 删除 编辑

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

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字符类型的处理性能

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31490526/viewspace-2732266/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: MySQL:用户
请登录后发表评论 登录
全部评论
Oracle ACE Pro; PostgreSQL ACE; Oracle 10g OCE、OCA、OCP; Oracle 11g OCP、OCM; MySQL 5.6 OCP; Oracle、MySQL OCP 讲师; PostgreSQL PGCE 获得者;

注册时间:2017-09-18

  • 博文量
    347
  • 访问量
    730022