我目前正在开发一个“微博”类型的应用程序。我使用的是Rails3和MySQL。我开始怀疑这是否真的是一个好主意。2-3年后的状态表可能包含数百万行。
MySQL可以处理这个数量吗?或者我应该转换成像NoSQL这样的Mongo解决方案?我在早期的开发中,所以在这种状态下转换应用程序不是问题。
你认为如何?这不是关于SQL和NoSQL的问题。这是关于什么是最适合这类应用的?
/ Tobias
发布于 2011-12-21 06:36:27
如果没有更多关于你的微博应用程序愿望的信息,这个问题很难回答。这取决于你如何设计它,以及人们将如何使用它。
但是,通常(这里是挥手),这种类型的应用程序最适合用NoSQL解决方案建模。
您将拥有几个基本模型:用户、博客、帖子、评论、附件
使用像MongoDB这样的解决方案,您可以将帖子建模为对象,这些对象包含一些(或全部)与评论、附件、赞、保存(执行一些反规范化)相关的信息,作为嵌入的对象,而不是单独的集合/表,否则必须连接在一起才能获得相同的信息。
这很酷,因为当您从数据存储检索post对象时,您将拥有所有这些丰富的元数据(而不会产生连接该数据的额外成本)
但是,如果您的博客属于很少使用或显示这些信息的类型,则这种类型的设计在性能方面不会给您带来太多好处。
话虽如此,您显然也可以使用传统数据库进行反规范化,但NoSQL方法更适合数据模型。
https://stackoverflow.com/questions/8543617
复制相似问题