写点什么

InnoDB 和 MyISAM 对比

作者:想要飞的猪
  • 2022-11-03
    广东
  • 本文字数:497 字

    阅读完需:约 2 分钟

  • 事务与外键

InnoDB 支持事务与外键,具有安全性与完整性,适合大量的 insert 与 update 操作;

  • 索引结构

InnoDB 使用聚集索引(聚簇索引),索引和记录存储在一个文件中。MyISAM 使用非聚集索引,索引文件与数据我呢见分开。

  • 并发能力

MyISAM 使用表锁,所以会导致并发效率底;InnoDB 读写阻塞可以与隔离级别有关,可以采用多并发版本(MVCC)来支持高并发。

  • 存储文件

InnoDB 表对应两个文件,一个.frm 表结构文件,一个.ibd 数据文件。InnoDB 表最大支持64TMyISAM 表对应三个文件,有个.frm 表结构文件,一个 MYD 表数据文件,一个.MYI 索引文件,从mysql5.0开始默认支持256TB

  • 适用场景

InnoDB 适用于增删改比较多的情况(需要支持事务的情况);并发比较高的情况(行级锁对并发有很好的适应性);数据一致性要求比较高;硬件设备内存比较大,可以利用 InnoDB 较好的缓存能力来提高内存利用率,减少磁盘的 I/O;MyISAM 使用与查询比较多,没有事务的情况(不支持事务);并发比较少的情况;数据修改比较少的情况;数据一致性要求不高的情况;

  • 总结

两中引擎该如何选择?

是否需要事务?有->InnoDB

是否存在并发修改?有-> InnoDB

是否追求快速查询,并且数据修改少?是 --> MyISAM

用户头像

还未添加个人签名 2020-06-05 加入

还未添加个人简介

评论

发布
暂无评论
InnoDB和MyISAM对比_想要飞的猪_InfoQ写作社区