Нужен ли ключ сортировки или я должен использовать AWS DAX? - PullRequest
0 голосов
/ 10 октября 2018

У меня есть дилемма, и я знаю, что я должен был использовать БД SQL с самого начала.

Я не уверен, что смогу использовать ключ сортировки для моего конкретного случая использования.У меня есть таблица, которая содержит несколько атрибутов бренда, модели, ссылки ... Что я пытаюсь сделать, это позволить пользователю выбрать марку, затем модель, ссылку и т. Д., Затем получить все продукты, которые соответствуют этим критериям, и дать среднее значениецены на эти товары.

Теперь операция сканирования всей базы данных, содержащей более 300 тыс. элементов, не слишком экономична, если не сказать больше, но я нахожусь в такой ситуации.

Мой вопросКак я могу наиболее эффективно делать то, что я хочу делать?

1 Ответ

0 голосов
/ 13 октября 2018

Пусть таблица T имеет только ключ раздела: ID.

Ради простоты вы разрешите своему клиенту выбрать n = 3 атрибуты: brand, model-ref, reference.

Теперь определите глобальный вторичный индекс (GSI) с ключом раздела: brand_model-ref_reference и ключом сортировки: ID.Я предлагаю вам использовать Projection: ALL.

Таким образом, когда ваш клиент выбрал 3 значения: a, b, c, все, что вам нужно сделать, это запросить GSI с помощью brand_model-ref_reference = "a#b#c".Вы будете эффективно извлекать все и только те элементы, которые вам нужны для вычисления вашего среднего значения.Размер таблицы больше не имеет значения.

Примечания :

  • С этим решением вы должны заранее определить количество критериев иКлиент должен выбрать значение для всех из них.Не так приятно.
  • Если есть больше ограничений, все это решение становится бесполезным.Используйте это как подсказку.:)
...