MySql Engine差异

bal*_*php 3 mysql phpmyadmin

可能重复:
MySQL中的InnoDB和MyISAM是什么?

在我的项目数据库中,一些表有引擎类型innoDB和其他一些Myisam.为什么这样设置?

Alp*_*ale 10

MySQL数据库的两种主要类型的表存储引擎是InnoDB和MyISAM.总结一下功能和性能的差异,

  1. InnoDB较新,而MyISAM较旧.
  2. InnoDB更复杂,而MyISAM更简单.
  3. InnoDB在数据完整性方面更加严格,而MyISAM则是松散的.
  4. 当MyISAM实现表级锁时,InnoDB实现了用于插入和更新的行级锁.
  5. InnoDB有交易,而MyISAM没有.
  6. InnoDB有外键和关系约束,而MyISAM没有.
  7. InnoDB具有更好的崩溃恢复能力,而MyISAM在恢复系统崩溃时的数据完整性方面表现不佳.
  8. MyISAM有全文搜索索引,而InnoDB没有.

鉴于这些差异,InnoDB和MyISAM各有其优点和缺点.它们在某些情况下比在另一种情况下更适合.

InnoDB的优点

  1. InnoDB应该用于数据完整性优先的地方,因为它通过关系约束和事务的帮助固有地处理它们.
  2. 写入密集型(插入,更新)表更快,因为它使用行级锁定,只保留对正在插入或更新的同一行的更改.

InnoDB的缺点

  1. 因为InnoDB必须采取表之间的不同关系的护理,数据库管理员和方案的创造者不得不花费更多的时间在设计数据模型,其比MyISAM数据的更复杂.
  2. 消耗更多的系统资源,如RAM.事实上,许多人都建议,如果在安装MySQL之后没有实际需要,可以关闭InnoDB引擎.
  3. 没有全文索引.

MyISAM的优点

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

MyISAM的缺点

  1. 没有数据完整性(例如关系约束)检查,这就是数据库管理员和应用程序开发人员的责任和开销.
  2. 不支持在关键数据应用程序(如银行业务)中必不可少的事务.
  3. 对于经常插入或更新的表,InnoDB比InnoDB慢,因为整个表都被锁定以进行任何插入或更新.

比较非常简单.InnoDB更适合需要频繁插入和更新的数据关键情况.另一方面,MyISAM在不完全依赖于数据完整性的应用程序中表现更好,而且大多只是选择和显示数据.

参考: 比较InnoDB和MyISAM

您还可以在此处查看更多详细信息: MyISAM或InnoDB MySQL引擎?

希望这可以帮助.