我使用后端的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表中的常用内容
答案 0 :(得分:8)
您需要考虑的一些事项 -
结论:从NoSQL
解释真实要指出的是,如果你被阻止 因为你不能选择数据库,所以制作超级棒的东西, 你做错了。如果您了解mysql,请使用它。优化时间 你真的需要。像k / v商店一样使用它,像rdbms一样使用它, 但为了上帝的缘故,打造你的杀手级应用!这些都不重要 大多数应用。 Facebook仍然使用MySQL,很多。维基百科使用MySQL,a 许多。 FriendFeed使用MySQL,很多。 NoSQL是一个很棒的工具,但它确实如此 当然不会成为你的竞争优势,但事实并非如此 让你的应用程序变得热门,最重要的是,你的用户不会给你一些差事 任何一个。
我打算构建下一个应用程序是什么?可能是Postgres。我会用吗 NoSQL的?也许。我也可以使用Hadoop和Hive。我可能会保留 平面文件中的所有内容也许我会开始攻击磁悬浮。我会用的 什么是最适合这份工作的。如果我需要报告,我将不会使用 任何NoSQL。如果我需要缓存,我可能会使用Tokyo Tyrant。如果我 需要ACIDity,我不会使用NoSQL。如果我需要大量的计数器,我会用 Redis的。如果我需要交易,我会使用Postgres。如果我有一吨 单一类型的文件,我可能会使用Mongo。如果我需要写 每天10亿件物品,我可能会使用Voldemort。如果我需要满员 文本搜索,我可能会使用Solr。如果我需要全文搜索 易变数据,我可能会使用Sphinx。
Too Funny & too relavent to NOT Post Again - MongoDb is Web Scale
答案 1 :(得分:0)
除非您对数据进行严格规范化,使得多个表上的IO成为瓶颈,否则MySQL将正常工作。没有理由只是因为大多数人使用mongo和node.js ..
Mongodb / Couchdb / Orientdb最适合存储大量“文档”对象。如果您的数据适合RDBMS模式,则无需创建文档。从我所看到的,在填充数据字段时,创建对象的主要延迟就出现了。使用NoSQL DB,您可以一次性获取所有数据,而在标准化的RDBMS中,数据字段将从不同的源填充,从而导致轻微的延迟。当然,您可以使用缓存来改进。 如果您想在RDBMS中实现可伸缩性,可以查看NuoDB。
由于您的后端应用服务器需要可扩展性,您还可以查看vertx。根据基准测试,它似乎胜过节点,但它仍然是非常新的。