我目前正在开发一个“微博”类型的应用程序。我正在使用Rails3和MySQL。我开始怀疑这是不是一个好主意。 2 - 3年后的状态表可能包含数百万行。
MySQL可以处理这个数量,还是应该转换为像Mongo这样的NoSQL解决方案?我处于开发阶段,所以在这种状态下转换应用程序不会有问题。
你怎么看?这不是关于SQL与NoSQL的问题。它是关于什么最适合这种应用程序?/ Tobias
答案 0 :(得分:2)
如果没有关于微博应用程序愿望的更多信息,这是一个难以回答的问题。这取决于你如何设计它以及人们如何使用它。
然而,通常(在这里挥手),这种类型的应用程序可以通过NoSQL解决方案进行最佳建模。
您将拥有几个基本模型:用户,博客,帖子,评论,附件
使用像MongoDB这样的解决方案,您可以将帖子建模为包含与注释相关的一些(或全部)信息的对象,以及作为嵌入对象而不是单独的集合/表格的附件,喜欢,保存(做一点非规范化)否则必须将它们连接在一起以获得相同的信息。
这很酷,因为当您从数据存储中检索帖子对象时,您拥有所有这些丰富的元数据(不会产生加入该数据的额外成本)
但是,如果您的博客属于很少使用或显示此类信息的类型,则此类设计在性能方面不会对您产生太大影响。
话虽这么说,你显然可以使用传统数据库进行非规范化,但NoSQL方法更适合数据模型。