我正在设计一个高度可扩展的应用程序,该应用程序必须存储大量数据。例如,它将存储大量有关用户的信息,然后存储许多诸如消息,注释之类的信息。我以前一直使用MySQL,但现在我可以尝试一些新的东西,例如,couchdb或类似SQL的东西。
有人对此有任何想法或指导吗?
这是Dare Obasanjo最近的博客文章中的引用。
SQL数据库就像自动传输,而NoSQL数据库就像手动传输。切换到NoSQL后,您将负责系统在关系数据库系统中自动执行的许多工作。与您选择手动变速箱而不是自动变速箱时发生的情况类似。其次,NoSQL通过消除数据库层中关系数据库进行的大量完整性检查,使您可以从系统中获得更多性能。同样,这类似于通过驾驶手动变速箱与自动变速箱车辆来提高汽车的性能。 但是,最显着的相似之处在于,就像我们大多数人无法真正利用手动挡汽车的好处一样,因为我们的大部分驾驶行为都在上下班路上坐车时,也存在着类似的严酷现实因为大多数网站都没有Google或Facebook的规模,因此不需要Bigtable或Cassandra。
SQL数据库就像自动传输,而NoSQL数据库就像手动传输。切换到NoSQL后,您将负责系统在关系数据库系统中自动执行的许多工作。与您选择手动变速箱而不是自动变速箱时发生的情况类似。其次,NoSQL通过消除数据库层中关系数据库进行的大量完整性检查,使您可以从系统中获得更多性能。同样,这类似于通过驾驶手动变速箱与自动变速箱车辆来提高汽车的性能。
但是,最显着的相似之处在于,就像我们大多数人无法真正利用手动挡汽车的好处一样,因为我们的大部分驾驶行为都在上下班路上坐车时,也存在着类似的严酷现实因为大多数网站都没有Google或Facebook的规模,因此不需要Bigtable或Cassandra。
我只能添加从至少有经验的MySQL切换到没有经验的CouchDB的意思,这意味着您将不得不处理一系列全新的问题并学习不同的概念和最佳实践。虽然这本身很不错(我经常在MongoDB上玩,并且非常喜欢它),但在估算该项目的工作量时,这是您需要计算的成本,带来了未知的风险,同时也带来了未知的收益。如果它基于您不知道的技术,将很难判断您是否能够按时完成项目并获得想要/需要的质量。
现在,如果您的团队中有NoSQL领域的专家,那么一定要仔细看一下。但是,如果没有团队的任何专业知识,请不要选择NoSQL进行新的商业项目。
更新 :只是为了在开火时扔些汽油,这是SQL营地人员的两篇有趣的文章。:-)
我等不及NoSQL死了(原始文章不见了,这是副本) 与NoSQL心态作斗争,尽管这不是反NoSQL的 最新更新 :好吧,这是有关NoSQL的有趣文章,使 NoSQL 更具意义