为什么要使用InnoDB而不是MyISAM

7

...以及如何选择MySQL数据库引擎) - Matt Ball
8
MySIAM已被弃用,建议改用MyTHAILAND。 - JeremyP
@Matt - 这些帖子中有一些已经是一年前的了,事情已经发生了变化,也许答案也不同了。 - Ben
InnoDB和MyISAM并不是年轻/不稳定的技术。InnoDB维基百科文章的修订历史(您接受的答案似乎总结了这一点)证实了这一点;在过去的一年中,事情并没有发生太大变化。 - Matt Ball
4个回答

14

使用InnoDB & MyISAM的优缺点 -

  1. InnoDB 通过重放其日志来从崩溃或其他意外关闭中恢复。
  2. InnoDB 可以在具有较低可靠性但某些情况下具有更高性能的模式下运行。
  3. InnoDB 自动将多个并发插入分组并同时刷新到磁盘上。
  4. InnoDB 在每个事务之后会刷新事务日志,极大地提高了可靠性。
  5. 与 InnoDB 不同,MyISAM 具有内置的全文搜索功能。
  6. MyISAM 在 web 应用程序中仍被广泛使用,因为传统上在大多数数据库访问是读取时,它被认为比 InnoDB 更快。
  7. 在向 InnoDB 表中写入/更新数据时,只锁定特定行,而在 MyISAM 中会锁定整个表。
  8. InnoDB 提供完整的事务支持。

6

事务和并发读/写如何处理?崩溃恢复也更好。使用MyISAM才有的一些功能,如全文搜索等,但除非您需要这些功能,否则我建议选择InnoDB。


4
InnoDB的创造者Heikki Tuuri使用以下电子邮件签名:

InnoDB - 为MySQL提供事务、行级锁定和外键


3

每次更新操作都会独占锁定表格。在更新期间无法从此表格中进行选择。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接