我正在与讨论和撰写博客的用户建立一个网站,并计划将MongoDB用作该网站的数据库。哪种架构选项更有效,并允许它们之间更容易的数据流:
一个包含博客集合,讨论集合和用户活动集合的数据库?每个集合都将根据需要进行分片。
博客数据库,讨论数据库和用户活动数据库?每个数据库将被分解为集合并适当地进行分类。
答案 0 :(得分:1)
无论是将所有内容放入单个数据库还是放入多个数据库,直到您发现需要在数据库级别执行某些操作(例如访问控制),或者将数据库文件放在不同的物理设备上(以减少I / O争用)。
此外,当前锁定粒度在数据库级别上,因此如果您碰巧有大量小写入它们,那么转到不同的数据库将意味着它们不会争用同一个锁。由于您预计分片,您还可以将每个数据库放在不同的分片上,这可能允许您推迟实际需要分片任何特定的集合,因为每个分片只处理该数据库集合的流量。
我想说如果你有疑问,请将它们放在不同的数据库中,它不太可能受到伤害,这可能有所帮助。
答案 1 :(得分:0)
Mongo可以使用,但熟悉它可能需要一些时间,具体取决于您的经验。
如果您使用MySQL(或其他SQL数据库),您可能会有更轻松的时间。您应该只为您的博客,讨论和活动创建单独的表,而不是为多个数据库创建。
要考虑的另一个因素是数据库的大小。 SQL数据库适用于大多数应用程序,即使是相当大的应用程序。 MongoDB(以及其他NoSQL数据库)非常适合扩展大数据。
希望这有帮助!