Предоставляет ли GSI Overloading какие-либо преимущества в производительности, например, позволяя более эффективно маршрутизировать кэшированные ключи разделов?Или это в основном о том, чтобы не дать вам закончиться GSI?Или, может быть, открытие других шаблонов запросов, которые могут быть не столь очевидны сразу.
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-gsi-overloading.html
например, если у вас есть базовая таблица, и вы хотите разделить ее, чтобы можно было запросить определенный атрибут(который становится PK GSI) в двух измерениях, имеет ли какое-либо значение, если вы создаете 1 перегруженный GSI или 2 незагруженных GSI.
Пример того, что я имею в виду, чтобы увидетьПрикрепленное изображение:
https://drive.google.com/file/d/1fsI50oUOFIx-CFp7zcYMij7KQc5hJGIa/view?usp=sharing
В базовой таблице есть документы, которые могут находиться в опубликованном или в черновом состоянии.Каждый документ принадлежит одному пользователю.Я хочу иметь возможность запросить пользователя, чтобы найти:
- Опубликованные документы по дате
- Черновики документов по дате
Я спрашиваю в отношениив соответствии с более поздней передовой практикой DynamoDB, которая подразумевает, что для всех приложений требуется только таблица one
.Некоторые из методов, показанных в этой документации, показывают, как достаточно сложная реляционная модель может быть сведена в 1 таблицу DynamoDB и 2 GSI, и при этом все еще поддерживает 10-15 шаблонов запросов.
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-relational-modeling.html
Я пытаюсь понять, почему кто-то пошел по этому пути, поскольку он кажется невероятно сложным.