原文链接:https://www.chenweiliang.com/cwl-28165.html
文章目录
- 在 MySQL 中创建表时,可以选择存储引擎。
- 有几种不同的存储引擎,但最常用的是 MyISAM 和 InnoDB,它们都是不同 MySQL 版本的默认存储引擎。
- 如果创建表时没有指定存储引擎,则使用 MySQL 版本的默认引擎。
- 在 MySQL 5.5.5 之前的版本中,MyISAM 是默认值,但在 5.5.5 之后的版本中,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 在不太依赖数据完整性的应用程序中表现更好,通常只选择和显示数据。
- 如果需要支持事务,就选择InnoDB,不需要事务就选择MyISAM。
- 如果大部分表操作都是查询,选择MyISAM,读写选择InnoDB。
- 如果系统崩溃导致数据难以恢复且成本高,请不要选择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
没有评论:
发表评论