存储是网站的选择 - Myisam或Innodb?

时间:2011-04-26 19:27:17

标签: mysql database innodb myisam data-storage

作为Craiglist类型网站的存储引擎,MyIsam或InnoDb以及为什么会有明显的选择?

请根据您的偏好解释具体原因

Craigslist类型的网站会有很多读取和写入但可能更多读取,因为很多人来到那里寻找他们想要的信息(通过搜索引擎)并且没有太多要发布...但只是发现他们在寻找什么...

在Innodb或Myisam这样的情况下你会做什么?既然有读写,那么......?

3 个答案:

答案 0 :(得分:4)

在v.high级别的术语中:

INNODB

  • 支持交易
  • 行级锁定
  • 支持外键约束
  • 对具有大量并发写入的工作负载进行良好处理
  • 崩溃安全
  • 行级锁定避免了许多令人讨厌的锁定情况

的MySQL

  • 无交易
  • 表级锁定
  • 支持有用的MERGE表
  • 适用于有大量读取且写入次数不多的工作负载
  • 没有崩溃安全
  • 当运行慢/差查询时,表级锁定可能会导致令人讨厌的情况

对于我现在工作的任何新项目,我几乎肯定会选择InnoDb。您的数据库崩溃的可能性较小,您可以利用事务并假设您在托管它的服务器上有相当大的RAM(这些天RAM非常便宜),那么您应该获得非常好的性能它的。 InnoDb在性能调优方面更为复杂,但幸运的是,它只会让您开箱即用。

答案 1 :(得分:3)

我更喜欢InnoDB,因为它更像是一个“真正的”数据库。此链接提供了更多详细信息:

http://www.mikebernat.com/blog/MySQL_-_InnoDB_vs_MyISAM

选择报价:

“InnoDB是事务安全的,意味着在整个查询过程中都保持数据完整性.InnoDB还提供行锁定,而不是表锁定,这意味着当一个查询忙于更新或插入行时,另一个查询可以同时更新不同的行。这些功能可以提高多用户并发性和性能。“

InnoDB的大多数功能归结为数据完整性,总是一件好事:)

答案 2 :(得分:0)

简而言之,总结一下: * MyISAM如果您正在寻找表现。 * InnoDB如果您正在寻找稳健性(交易,外键)。

我总是喜欢强健而不是性能,在项目开始时更是如此。所以从InnoDB开始。一旦您的网站足够成功,您可以考虑MyISAM。