Храните связанные данные вместе. Исследования по оптимизации таблицы маршрутизации
20 лет назад обнаружили, что "местность ссылки" был единственным
Важный фактор в ускорении времени отклика: хранение связанных данных
вместе в одном месте. Это в равной степени верно и для систем NoSQL сегодня,
где сохранение связанных данных в непосредственной близости имеет большое влияние на
стоимость и производительность. Вместо того, чтобы распространять связанные элементы данных
в нескольких таблицах вы должны хранить связанные элементы в NoSQL
Система как можно ближе друг к другу.
Как правило, вы должны поддерживать как можно меньше таблиц в
Приложение DynamoDB. Как подчеркивалось ранее, наиболее хорошо продуманный
приложения требуют только одну таблицу, если нет особых причин
для использования нескольких таблиц.
Исключениями являются случаи, когда используются данные большого объема временных рядов,
или наборы данных, которые имеют очень разные шаблоны доступа, но это
исключения. Одна таблица с инвертированными индексами обычно может включать
простые запросы для создания и извлечения сложных иерархических данных
структуры, необходимые для вашего приложения.
Использовать порядок сортировки. Связанные элементы можно группировать и запрашивать
эффективно, если их ключевой дизайн заставляет их сортировать вместе. Это
важная стратегия проектирования NoSQL.
Распределение запросов. Также важно, чтобы большой объем
запросы не должны быть сосредоточены на одной части базы данных, где они могут
превышать емкость ввода / вывода. Вместо этого вы должны разработать ключи данных для
максимально равномерно распределять трафик между разделами,
избегая «горячих точек».
Использовать глобальные вторичные индексы . Создавая конкретный глобальный вторичный
индексы, вы можете включить другие запросы, чем ваша основная таблица может
поддержка, и это все еще быстро и относительно недорого.