在MongoDB中使用数据库与集合

在MongoDB中使用数据库与集合,mongodb,database-design,architecture,database,Mongodb,Database Design,Architecture,Database,我正在与有讨论和写博客的用户建立一个网站,并计划使用MongoDB作为该网站的数据库。哪种体系结构选项更高效,并允许它们之间更轻松的数据流: 一个包含博客集合、讨论集合和用户活动集合的数据库?每一个集合都将被适当地分割 博客数据库、讨论数据库和用户活动数据库?每个数据库都将被分成不同的集合,并根据需要进行排序 Mongo可以工作,但是熟悉它可能需要时间,这取决于你的经验 如果您使用MySQL(或另一个SQL db),您可能会更轻松。您可能应该为您的博客、讨论和活动创建单独的表,而不是多个数据库

我正在与有讨论和写博客的用户建立一个网站,并计划使用MongoDB作为该网站的数据库。哪种体系结构选项更高效,并允许它们之间更轻松的数据流:

  • 一个包含博客集合、讨论集合和用户活动集合的数据库?每一个集合都将被适当地分割

  • 博客数据库、讨论数据库和用户活动数据库?每个数据库都将被分成不同的集合,并根据需要进行排序


  • Mongo可以工作,但是熟悉它可能需要时间,这取决于你的经验

    如果您使用MySQL(或另一个SQL db),您可能会更轻松。您可能应该为您的博客、讨论和活动创建单独的表,而不是多个数据库

    另一个要考虑的因素是数据库的大小。SQL数据库适用于大多数应用程序,即使是相当大的应用程序。MongoDB(和其他NoSQL db)非常适合扩展大数据


    希望这有帮助

    Mongo会起作用,但熟悉它可能需要时间,具体取决于您的经验

    如果您使用MySQL(或另一个SQL db),您可能会更轻松。您可能应该为您的博客、讨论和活动创建单独的表,而不是多个数据库

    另一个要考虑的因素是数据库的大小。SQL数据库适用于大多数应用程序,即使是相当大的应用程序。MongoDB(和其他NoSQL db)非常适合扩展大数据


    希望这有帮助

    除非您发现需要在数据库级别执行某些操作,例如访问控制或将数据库文件放在单独的物理设备上(以减少I/O争用),否则将所有内容放在单个数据库还是放在多个数据库中都没有太大区别

    此外,当前的锁定粒度是在数据库级别上的,因此,如果碰巧有大量的小写入,将它们转到不同的数据库将意味着它们不会争夺同一个锁定。由于您希望进行切分,因此还可以将每个数据库放置在不同的切分上,这可能允许您推迟实际需要切分任何特定集合,因为每个切分只处理该数据库集合的流量


    我想说,如果您有疑问,请继续将它们放在单独的数据库中,这不太可能造成伤害,也可能会有所帮助。

    在您发现需要执行在数据库级别处理的操作之前,将所有内容放在单个数据库或多个数据库中不会有太大区别,例如访问控制,或者将数据库文件放置在单独的物理设备上(以减少I/O争用)

    此外,当前的锁定粒度是在数据库级别上的,因此,如果碰巧有大量的小写入,将它们转到不同的数据库将意味着它们不会争夺同一个锁定。由于您希望进行切分,因此还可以将每个数据库放置在不同的切分上,这可能允许您推迟实际需要切分任何特定集合,因为每个切分只处理该数据库集合的流量

    我想说,如果你有疑问,就把它们放在不同的数据库中,这不太可能造成伤害,也可能会有所帮助