Создание глобального вторичного индекса, хэш-ключ которого может иметь только два возможных значения

Недавно я пытался создать обходной путь для определенной проблемы, которую я имею в отношении хэш-ключей.

В моем сценарии у меня есть таблица, которая должна содержать основную информацию профиля пользователя.. В том числе «пол».
Атрибут’ gender ‘ указывает, является ли он мужчиной или женщиной(m, f).. И иногда мне нужно запрашивать только мужчин. Должен ли я создать глобальный вторичный индекс (с «полом» в качестве хэш-ключа) для выполнения этих запросов, учитывая, что подобные хэш-ключи разрешаются к тому же физическому разделу, когда dynamodb выполняет свою функцию хэширования, и я мог бы в конечном итоге перегрузить один раздел, так как есть только два возможных различных значения

1 ответ

  1. Согласно этой ссылке, каждый раздел в DynamoDB может хранить 10 ГБ данных и поддерживать 3K единиц емкости чтения (RCUs) и 1K единиц емкости записи (WCUs).

    Ответ на ваш вопрос зависит от размера таблицы и подготовленных RCU и Wcu.

    • Если соответствующие значения для вашей таблицы находятся (и, в будущем, останутся таковыми) в этих пределах, то хорошо иметь хеш-ключ GSI по полу, потому что все ваши данные в любом случае будут на одном разделе.
    • Если вы можете выйти за эти пределы, то это правда, что вы можете в конечном итоге перегрузить свои разделы, в зависимости от ваших шаблонов доступа для чтения.