Mongodb/Couchdb而不是MySQL(从PHP切换到节点)

Nyx*_*nyx 5 php mysql couchdb mongodb node.js

我使用后端的PHP/MySQL/Solr和前端的Javascript/jQuery/Backbone完成了大部分的Web开发.

我已经编写了一些Node应用程序,但使用的是MySQL而不是Mongodb/Couchdb,许多Node教程/书籍都使用它.您是否会开始使用Mongo/Couch而不是MySQL,因为开发Node的大多数人都在使用它?MySQL似乎对我很好,我不清楚切换到Mongo/Couch的优势.

现在我正在启动一个网站,其中"前端"应用服务器是PHP/MySQL,数字运算服务器在Node中.我坚持使用PHP来提供"前线"的原因是因为我非常适合在我的PHP框架中开发.

选择节点的原因是因为将有大量同时执行任务的空闲/等待时间大约为秒.这必须具有高度可扩展性.

将存储在数据库中的内容就像您将存储在MySQL表中的常用内容一样

Sri*_*aju 8

你需要考虑的一些事情 -

  1. 扩展是我们迁移到mongoDB的最重要原因之一.分享和复制MongoDB是一件轻而易举的事.因此,如果您的应用程序需要水平扩展,那么mongoDB就是您的选择.垂直扩展只能达到你很快就会遇到硬件限制......加上mysql的分片是一个真正的痛苦.
  2. 其次是数据库架构.在像我们这样的大多数初创公司中,需求和功能变化非常快.因此,在一段时间内,基于mysql架构的DB可能比"良好实践"更具束缚性.在这种情况下,没有人关心"良好做法".因此,如果您需要一个可扩展的无架构数据库,那么请考虑使用mongoDB.
  3. 所有这些都附带了一个免责声明,mongoDB(以及其他NoSql解决方案)是DB世界中闪亮的新玩具.它们并不像MySQL那样成熟.其中大多数包括mongo都不能很好地处理交易.因此,假设您正在构建一个金融交易系统,那么我会告诉您盲目地使用mysql作为其ACID兼容(阅读innodb引擎).所以这些决定很多都取决于你想要完成的事情......

结论:从复述的NoSQL

值得指出的是,如果你因为无法选择数据库而无法制作超级棒的东西,那么你做错了.如果您了解mysql,请使用它.在您确实需要时进行优化.像ak/v商店一样使用它,像rdbms一样使用它,但为了上帝的缘故,构建你的杀手级应用程序!这些对大多数应用程序都不重要.Facebook仍然使用MySQL,很多.维基百科使用MySQL,很多.FriendFeed使用MySQL,很多.NoSQL是一个很棒的工具,但它肯定不会成为你的竞争优势,它不会让你的应用程序变得热门,而且最重要的是,你的用户不会对任何这些产品大肆宣传.

我打算如何构建我的下一个应用程序?可能是Postgres.我会使用NoSQL吗?也许.我也可以使用Hadoop和Hive.我可能会把所有内容保存在平面文件 也许我会开始攻击磁悬浮.我将使用最适合这份工作的东西.如果我需要报告,我将不会使用任何NoSQL.如果我需要缓存,我可能会使用Tokyo Tyrant.如果我需要ACIDity,我不会使用NoSQL.如果我需要大量的计数器,我会使用Redis.如果我需要交易,我会使用Postgres.如果我有一大堆单一类型的文件,我可能会使用Mongo.如果我每天需要写10亿件物品,我可能会使用Voldemort.如果我需要全文搜索,我可能会使用Solr.如果我需要对volatile数据进行全文搜索,我可能会使用Sphinx.

太有趣了,过于相关而不再发布 - MongoDb是Web Scale

在此输入图像描述