В DynamoDB, что быстрее? Запрос по идентификатору или по вторичному атрибуту индекса? - PullRequest
1 голос
/ 04 октября 2019

У меня есть таблица DynamoDB, где мне нужно запросить два разных атрибута, иногда по одному, иногда по другому, но никогда по обоим одновременно.

Допустим, у меня есть атрибут Aи атрибут B, другие атрибуты здесь не имеют значения.

Я думаю о разработке этой таблицы с ключом Hash, являющимся атрибутом A, и GSI, являющимся атрибутом B. Таким образом, я всегда выполняю query вместо scan.

. Мне приходит в голову вопрос, какой запрос выполняется быстрее, по Атрибуту A (который является Id) или по Атрибуту B (GSI)?

Если есть какая-то разница, я мог бы переключиться, пропустив B как Id иА как GSI.

Спасибо

1 Ответ

1 голос
/ 04 октября 2019

GSI - это фактическая таблица DynamoDB со всеми скопированными данными основной таблицы.

Это может быть более эффективно, если вы проектируете только те атрибуты, которые вам нужны.

Это может быть менее эффективно, учитывая, что хеш-ключи не уникальны, и вы можете закончить итерациюэти результаты, чтобы найти нужный.

...