2011-04-26 53 views
0

作为Craiglist类型站点的存储引擎,MyIsam或InnoDb以及为什么会是一个明显的选择?存储网站选择 - Myisam或Innodb?

请与您的喜好具体原因解释

一个Craigslist网站类型的网站将有大量读取和写入,但可能更多的读取,因为很多人来到那里寻找他们想要的信息(通过搜索引擎)并没有太多的帖子...但只是发现他们正在寻找...

你会在这种情况下做什么Innodb或Myisam?既然有读取和写入..?

+0

这个问题是堆栈溢出题外。我建议将它移到[网站管理员](http://webmasters.stackexchange.com/)。请参阅[Stack Overflow的常见问题](http://stackoverflow.com/faq)以了解更多关于这里主题的信息。 – 2011-04-26 19:30:25

+0

可能重复[有什么区别MyISAM和InnoDB?](http://stackoverflow.com/questions/12614541/whats-the-difference-between-myisam-and-innodb) – Kzqai 2015-01-12 03:30:01

回答

4

In v。高层方面:

InnoDB的

  • 支持事务
  • 行级锁
  • 支持外键约束
  • 工作负载良好的操控性,有很多的并发写入
  • 碰撞安全
  • 行级锁定避免了很多令人讨厌的锁定情况

MySQL的

  • 没有交易
  • 表级锁
  • 支持融合表可以是有用的
  • 适合那里有大量的读取并没有那么多的写
  • 工作量不能安全地崩溃
  • 当缓慢/差劲的查询运行时,表级锁定会导致恶意的情况

对于我现在工作的任何新项目,我几乎肯定会选择InnoDb。你的db崩溃的可能性较小,你可以利用事务并假设你在其上托管的服务器上有一块相当可观的内存(RAM最近很便宜),那么你应该得到非常好的性能的。 InnoDb在性能调整方面更加复杂,但幸运的是,它可以为您带来开箱即用的愉快体验。

+0

我编辑了我的问题..租赁答案在读写的细节...正如他们所说MyIsam更好地读取... – user481913 2011-04-26 20:30:03

+0

我仍然会与InnoDb一起运行,并且如果将来您希望进一步提高性能只读的一面在模板或数据层为显示的广告实现某种缓存层。 – 2011-04-26 20:34:13

3

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

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

选择报价:

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

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

+0

我编辑我的问题..租赁答案读取和写入的细节... – user481913 2011-04-26 20:29:08

+0

谢谢... 1 upvote for you :) – user481913 2011-04-27 18:46:32

0

总之,总结: *的MyISAM,如果你正在寻找的性能。 * InnoDB,如果你正在寻找健壮性(交易,外键)。

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

+2

如果有人对MyISAM和InnoDB之间的某些实际性能表现感兴趣:http://www.mysqlperformanceblog.com/2007/01/ 08/innodb的-VS-的myisam-VS-鹘的基准部分-1 /。换句话说,MyISAM并不总是更快,事实上InnoDB在很多领域都击败了MyISAM。 – rzetterberg 2011-04-26 19:34:27