gpt4 book ai didi

mysql - 何时使用 MyISAM 和 InnoDB?

转载 作者:IT老高 更新时间:2023-10-28 12:50:07 27 4
gpt4 key购买 nike

MyISAM 的设计理念是,您的数据库被查询的次数远远超过其更新次数,因此它执行非常快速的读取操作。如果您的读写(插入|更新)比率低于 15%,则最好使用 MyISAM。

InnoDB 使用行级锁定,具有提交、回滚和崩溃恢复功能来保护用户数据。支持事务和容错

MyISAM 和 InnobDB 之间的上述差异是否正确? 如果 MISAM 和 InnobDB 有任何其他限制,请指导。我什么时候应该使用 MyiSAM 或 Innodb? 谢谢!

最佳答案

阅读 Storage Engines .

MyISAM:

MyISAM MySQL 中的存储引擎。

  • 设计和创建更简单,因此更适合初学者。不用担心表之间的外部关系。
  • 总体上比 InnoDB 更快,因为结构更简单,因此服务器资源成本更低。 -- 大部分不再正确。
  • 全文索引。 -- InnoDB 现在有它了
  • 尤其适用于读取密集型(选择)表。 -- 大部分不再正确。
  • 磁盘占用空间比 InnoDB 少 2 到 3 倍。 -- 从 5.7 版开始,这可能是 MyISAM 唯一真正的优势。

InnoDB:

InnoDB MySQL 中的存储引擎。

  • 支持交易(为您提供对 ACID 属性的支持)。
  • 行级锁定。与例如 MyISAM 相比,拥有更细粒度的锁定机制可为您提供更高的并发性。 .
  • 外键约束。允许您让数据库确保数据库状态的完整性,以及表之间的关系。
  • InnoDB 比 MyISAM 更能抵抗表损坏。
  • 支持数据和索引的大型缓冲池。 MyISAM key 缓冲区仅用于索引。
  • MyISAM 停滞不前;所有 future 的增强都将在 InnoDB 中。随着 8.0 版的推出,这一点非常清楚。

MyISAM 限制:

  • 没有外键和级联删除/更新
  • 没有交易完整性(ACID 合规性)
  • 没有回滚功能
  • 4,284,867,296 行限制 (2^32) -- 这是旧的默认值。可配置的限制(对于许多版本)是 2**56 字节。
  • 每个表最多 64 个索引

InnoDB 限制:

  • 无全文索引(mysql 5.6以下版本)
  • 无法压缩以实现快速只读(5.5.14 引入 ROW_FORMAT=COMPRESSED)
  • 您无法修复 InnoDB 表

为了简要了解,请阅读以下链接:

  1. MySQL Engines: InnoDB vs. MyISAM – A Comparison of Pros andCons
  2. MySQL Engines: MyISAM vs. InnoDB
  3. What are the main differences between InnoDB and MyISAM?
  4. MyISAM versus InnoDB
  5. What's the difference between MyISAM and InnoDB?
  6. MySql: MyISAM vs. Inno DB!

关于mysql - 何时使用 MyISAM 和 InnoDB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15678406/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com