#amazon-web-services #amazon-dynamodb
#amazon-web-services #amazon-dynamodb
Вопрос:
В мире SQL при создании некластеризованного индекса создается отдельная структура данных, которая позволяет находить указатели на строки таблицы на основе ключа, который не является первичным ключом таблицы.
Из документов DynamoDB кажется, что создание вторичного индекса создает отдельную структуру данных, которая содержит копию фактических строк таблицы, а не просто указатель на эти строки.
Это верно?
Ответ №1:
Это частично верно — для глобального вторичного индекса он обязательно создаст вторую таблицу и обновит ее асинхронно на основе изменений в первичной таблице. Вот почему вы можете выполнять только в конечном итоге согласованные чтения по этому индексу.
Для локальных вторичных индексов это, скорее всего, одна и та же таблица.
Есть доклад от re: invent 2018, где они объясняют базовые структуры данных, которые я могу настоятельно рекомендовать:
Комментарии:
1. Ах да — без ключа раздела копирование фактических строк таблицы имеет смысл, поэтому вы можете избежать перехода по разделам. Но для локальных индексов указатели будут работать просто отлично. Спасибо за рекомендацию vid, я посмотрю.
2. Также обратите внимание, что СТРОКИ в GSI будут содержать только то, что вы спроецировали .
KEYS_ONLY
,INCLUDE
, илиALL
3. Просто прочитайте, что с помощью LSI у вас действительно есть выбор, копировать или нет строки таблицы — docs.aws.amazon.com/amazondynamodb/latest/developerguide /. …