MySQL -- 11 -- MySQL存储引擎MyISAM和InnoDB之间的区别(8.0)

原文链接:MySQL – 11 – MySQL存储引擎MyISAM和InnoDB之间的区别(8.0)


相关文章:


在 MySQL5.5 版本之前,MyISAM 是 MySQL 的默认存储引擎;从 MySQL5.5 版本开始,InnoDB 是 MySQL 的默认存储引擎

官方文档:Introduction to InnoDB

官方文档:The MyISAM Storage Engine


一、MyISAM 存储引擎特性

在这里插入图片描述

  • 如上所示,共有以下特性

    • 支持 B 树索引

    • 支持备份或时间点恢复

      • 需要在服务器中实现,而不是在存储引擎中实现
    • 不支持集群数据库

    • 不支持聚集索引

    • 支持压缩数据

      • 仅当使用压缩行格式时才支持 MyISAM 压缩数据

      • 同时使用压缩行格式与 MyISAM 存储引擎的表是只读的

    • 不支持数据缓存

    • 支持数据加密

      • 需要在服务器中,通过加密功能来实现
    • 不支持外键

    • 支持全文索引 (FULLTEXT)

    • 支持地理空间数据类型

    • 支持地理空间索引

    • 不支持哈希索引

    • 支持索引缓存

    • 锁粒度:表,即表级锁

    • 不支持 MVCC

    • 支持复制

      • 需要在服务器中实现,而不是在存储引擎中实现
    • 存储限制

      • 256 TB
    • 不支持 T 树索引

    • 不支持事务

    • 支持更新数据字典中的统计信息


二、InnoDB 存储引擎特点

在这里插入图片描述

  • 如上所示,共有以下特性

    • 支持 B 树索引

    • 支持备份或时间点恢复

      • 需要在服务器中实现,而不是在存储引擎中实现
    • 不支持集群数据库

    • 支持聚集索引

    • 支持压缩数据

    • 支持数据缓存

    • 支持数据加密

      • 需要在服务器中,通过加密功能来实现

      • 在 MySQL5.7 以及更高的版本中,支持静态数据表空间加密

    • 支持外键

    • 支持全文索引 (FULLTEXT)

      • MySQL5.6 版本开始支持
    • 支持地理空间数据类型

    • 支持地理空间索引

      • MySQL5.7 版本开始支持
    • 不支持哈希索引

      • InnoDB 在内部将哈希索引用于其自适应哈希索引 (adaptive hash index) 功能

      • InnoDB 支持的哈希索引是自适应的,当 InnoDB 注意到某些索引值被使用的非常频繁时,它会在内存中基于 B-Tree 索引之上再创建一个哈希索引,这样就让 B-Tree 索引也具有了哈希索引的一些优点,比如:快速的 Hash 查找,这是一个完全自动的、内部的行为,不能人为干预是否在一张表中生成哈希索引

    • 支持索引缓存

    • 锁粒度:行,即行级锁

    • 支持 MVCC

    • 支持复制

      • 需要在服务器中实现,而不是在存储引擎中实现
    • 存储限制

      • 64 TB
    • 不支持 T 树索引

    • 支持事务

    • 支持更新数据字典中的统计信息


三、归纳总结

  • MyISAM 和 InnoDB 的区别

    • MyISAM 不支持聚集索引;InnoDB 支持聚集索引

    • MyISAM 不支持数据缓存;InnoDB 支持数据缓存 (两者都支持索引缓存)

    • MyISAM 不支持外键;InnoDB 支持外键

    • MyISAM 支持全文索引;InnoDB 从 MySQL 5.6 版本开始支持全文索引

    • MyISAM 不支持哈希索引;InnoDB 也不支持哈希索引,但其内部支持自适应哈希索引

    • MyISAM 默认使用表级锁,不支持行级锁;InnoDB 默认使用行级锁,同时也支持表级锁

    • MyISAM 不支持事务;InnoDB 支持事务

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值