代码之家  ›  专栏  ›  技术社区  ›  wzr1337

DynamoDB可伸缩性:如何设计partionkey与index

  •  0
  • wzr1337  · 技术社区  · 6 年前

    如中所述 https://aws.amazon.com/blogs/database/choosing-the-right-dynamodb-partition-key/ ,分区键应该是唯一的。

    我正在构建一个应用程序,它需要存储对某个主题的订阅(想想一个聊天应用程序)。数以百万计的订阅需要存储在数据库中,当有消息应该发送给订阅服务器时,应用程序需要从表中获取所有订阅服务器。

    天真的方法

    最简单的方法是,设计一个主键,如:

    SUBSCRIPTIONS|<topic>

    然后,sortkey将为 <topic> 按订阅时间、地区和其他一些标准。

    另外,考虑到最大表大小,会对分区中可以保留的订阅数设置一个硬限制,从而对这种设计通常设置最大订阅数。因此,这是设计为失败的可伸缩性。

    另一种设计方法是使用

    SUBSCRIPTIONS|<clientId>

    <主题> 进了肮脏的房间。这样可以更好地扩展表(分区),但需要扫描才能找到某个特定时间段的所有订户 <主题>

    索引在这里可能有用,但是索引如何在多个分区上扩展呢?它将如何表现?

    0 回复  |  直到 6 年前