2022年6月9日星期四

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

原文链接:https://www.chenweiliang.com/cwl-28165.html


  • 在 MySQL 中创建表时,可以选择存储引擎。

  • 有几种不同的存储引擎,但最常用的是 MyISAM 和 InnoDB,它们都是不同 MySQL 版本的默认存储引擎。

  • 如果创建表时没有指定存储引擎,则使用 MySQL 版本的默认引擎。

  • 在 MySQL 5.5.5 之前的版本中,MyISAM 是默认值,但在 5.5.5 之后的版本中,InnoDB 是默认值。

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


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默认引擎 ▼






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

欢迎分享本文链接:https://www.chenweiliang.com/cwl-28165.html


网站地址:https://www.chenweiliang.com/



欲获取更多资讯内幕和秘技,欢迎进入Telegram频道:https://www.chenweiliang.com/go/tgchannel

没有评论:

发表评论