MySQL数据库表MyISAM与InnoDB类型有何区别?对比选择哪个好

  • MySQL 中创建表时,可以选择存储引擎。
  • 有几种不同的存储引擎,但最常用的是 MyISAM 和 InnoDB,它们都是不同 MySQL 版本的默认存储引擎。
  • 如果创建表时没有指定存储引擎,则使用 MySQL 版本的默认引擎。
  • 在 MySQL 5.5.5 之前的版本中,MyISAM 是默认值,但在 5.5.5 之后的版本中,InnoDB 是默认值。

MySQL数据库表MyISAM与InnoDB类型有何区别?优缺点分析

MySQL数据库MyISAM类型和InnoDB类型的区别

  • InnoDB 较新,MyISAM 较旧。
  • InnoDB 更复杂,而 MyISAM 更简单。
  • InnoDB 对数据完整性更严格,而 MyISAM 更宽松。
  • InnoDB 为插入和更新实现行级锁定,而 MyISAM 实现表级锁定。
  • InnoDB 有事务,MyISAM 没有。
  • InnoDB 有外键和关系限制,而 MyISAM 没有。
  • InnoDB 具有更好的崩溃恢复能力,而 MyISAM 在系统崩溃时无法恢复数据完整性。
  • MyISAM 有全文搜索索引,而 InnoDB 没有。

InnoDB类型优点

InnoDB 应该优先考虑数据完整性,因为它通过关系约束和事务处理数据完整性。

在写入密集型(插入、更新)表中更快,因为它利用行级锁定并且只保留对插入或更新的同一行的更改。

InnoDB类型缺点

  • 因为 InnoDB 要处理不同的表之间的关系,所以数据库管理员和模式创建者需要花费更多的时间来设计比 MyISAM 更复杂的数据模型。
  • 消耗更多系统资源,例如 RAM。
  • 事实上,很多人建议在安装 MySQL 后,如果你不需要它,就关闭 InnoDB 引擎。
  • 没有全文索引

MyISAM优点

  • 设计和创建更简单,因此更适合初学者。
  • 不用担心表之间的外部关系。
  • 由于结构更简单且服务器资源成本更低,总体上比 InnoDB 更快。
  • 全文索引。
  • 特别适用于读取密集型(选择)表。

MyISAM类型缺点

  • 没有数据完整性(例如,关系约束)检查,这增加了数据库管理员和应用程序开发人员的责任和开销。
  • 不支持在银行等关键数据应用程序中必不可少的交易。
  • 对于频繁插入或更新的表,它比 InnoDB 慢,因为整个表都被锁定以进行任何插入或更新。

MyISAM类型对比InnoDB类型,对比选择哪个好?

InnoDB 更适合需要频繁插入和更新的数据危急情况。

另一方面,MyISAM 在不太依赖数据完整性的应用程序中表现更好,通常只选择和显示数据。

  1. 如果需要支持事务,就选择InnoDB,不需要事务就选择MyISAM。
  2. 如果大部分表操作都是查询,选择MyISAM,读写选择InnoDB。
  3. 如果系统崩溃导致数据难以恢复且成本高,请不要选择MyISAM。

一位用WordPress建站的网友,有一天无意中发现数据库挺大的,但是这个网站只有不到10篇文章,这么大的数据库毫无意义。

然后开始找原因,发现phpMyAdmin后台的数据库类型和其他WordPress站点不一样。

该站点属于 InnoDB 类型,而其他 WordPress 站点属于 MyISAM 类型。

InnoDB 类型会导致数据库大小扩大数倍,所以网友决定从 InnoDB 类型转换为 MyISAM 类型 

点击下方链接,了解phpMyAdmin如何将InnoDB数据表类型 转换修改成MyISAM默认引擎 ▼

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动到顶部