Amazon dynamodb DynamoDB全球二级指数提高性能

Amazon dynamodb DynamoDB全球二级指数提高性能,amazon-dynamodb,database,nosql,Amazon Dynamodb,Database,Nosql,我正在设计一个用于跟踪呼叫活动的应用程序 每个呼叫可以被终止或激活。应用程序将每分钟查询数据库以生成激活调用列表。每秒最多可拨打1000个电话 我应该如何设计我的数据库?我是否应该在“state”属性上有一个“Call”表和一个可以等于“activate”或“terminated”的全局二级索引 或 “调用”表和“isActive”属性上的全局二级索引,仅用于活动调用。如果使用问题中建议的模式,您可能会遇到以下问题: CallList将“state”作为GSI的表,这样您就可以查询GSI并获取所

我正在设计一个用于跟踪呼叫活动的应用程序

每个呼叫可以被终止或激活。应用程序将每分钟查询数据库以生成激活调用列表。每秒最多可拨打1000个电话

我应该如何设计我的数据库?我是否应该在“state”属性上有一个“Call”表和一个可以等于“activate”或“terminated”的全局二级索引


“调用”表和“isActive”属性上的全局二级索引,仅用于活动调用。

如果使用问题中建议的模式,您可能会遇到以下问题:

  • CallList
    将“state”作为GSI的表,这样您就可以查询GSI并获取所有活动调用,但最终它会影响您的性能,因为分区键的值非常有限(我假设您也不会删除记录,因此表很快就会变大)
  • CallList
    表中GSI处于isActive状态时,这将出现与上述问题相同的问题,因为大多数行的“isActive=False”
  • 我提议的方案:


    保留一个单独的
    activeCall
    表,该表只包含一个活动调用条目,这样您就不必担心表的大小或GSI最终会导致支付更少,一旦调用终止,您可以从表中删除该条目。

    您使用的是哪个NoSQL DB?