AWS DynamoDB Scan - PullRequest
       4

AWS DynamoDB Scan

0 голосов
/ 14 мая 2018

Я сослался на несколько сообщений о Query Vs Scan в DynamoDB.Почти во всех упомянутых постах сканирование выполняется медленнее, поскольку оно читает всю таблицу или индекс.Я хотел знать случаи использования, когда сканирование лучше, чем Query.Можешь поделиться, если есть?

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

Ашан ответ правильный. Чтобы добавить дополнительное описание и пару примеров:

Найти элемент на основе неиндексированных атрибутов (должен быть нечастым, поскольку сканирование дорого).

Есть несколько причин, по которым вы не можете индексировать атрибут.

Низкая мощность

Представьте себе таблицу, где каждый предмет представляет человека. Вы можете захотеть операцию, которая возвращает всех женщин. Логический гендерный атрибут может привести к неправильному ключу разделения из-за низкой мощности, поэтому вы почти наверняка никогда не разделите этот атрибут. В этом случае сканирование подходит. Хорошим практическим правилом здесь является то, что если операция возвращает значительную долю элементов в таблице, сканирование, вероятно, подойдет.

Редко используется

Допустим, люди за столом - сотрудники, и раз в месяц вы заказываете пиццу для всех. Ваша таблица содержит все любимые пиццы, поэтому, прежде чем заказать, вы хотите знать, какие сотрудники будут иметь Маргариту. Вы делаете это только раз в месяц. Создание индекса только для этой цели будет дорогостоящим, так как вы должны предоставить индекс. В этом случае, вероятно, лучше просто выполнить сканирование.

0 голосов
/ 14 мая 2018

Существует несколько вариантов использования, когда сканирование предпочтительнее, чем запрос.

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