1

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

  1. 一个包含博客集合、讨论集合和用户活动集合的数据库?每个集合都会被适当地分片。

  2. 博客数据库、讨论数据库和用户活动数据库?每个数据库都将被分解为集合并根据需要进行分片。

4

2 回答 2

1

将所有内容放入单个数据库或多个数据库中不会有很大的不同,直到您发现您需要做一些在数据库级别处理的事情,例如访问控制,或将数据库文件放在单独的物理设备上(以减少 I/O 争用)。

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

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

于 2013-04-25T04:03:05.047 回答
0

Mongo 可以,但根据您的经验,熟悉它可能需要一些时间。

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

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

希望这可以帮助!

于 2013-04-25T02:46:05.177 回答