一尘不染

什么时候使用MyISAM和InnoDB?

mysql

MyISAM的设计思想是查询数据库远不止其更新,因此它执行非常快的读取操作。如果您的读写(插入|更新)比率小于15%,则最好使用MyISAM。

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

以上区别是正确的MyISAM和InnobDB之间吗? 请指导MYISAM和InnobDB是否有其他限制。
我应该何时使用MyiSAM或何时使用Innodb?
谢谢!


阅读 365

收藏
2020-05-17

共1个答案

一尘不染

阅读有关 存储引擎的信息

MyISAM:

MySQL中的MyISAM存储引擎。

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

InnoDB:

MySQL中的InnoDB存储引擎。

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

MyISAM的局限性:

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

InnoDB的局限性:

  • 没有全文索引(低于5.6的mysql版本)
  • 无法压缩为快速只读(已引入5.5.14 ROW_FORMAT=COMPRESSED
  • 您无法修复InnoDB表
2020-05-17