Я использую DynamoDB в качестве базы данных в моем asp. net основном проекте веб-API (. net core 2.2). В моей таблице тысячи строк, и некоторые запросы возвращают более 10 тысяч строк с ключом и выражением фильтра. Ясно, что я использую ограничения страниц и разбиение на страницы, чтобы вернуть эти огромные данные во внешний интерфейс. Мой объект запроса выглядит примерно так (я пропустил выражение фильтра, но они также присутствуют):
И затем
Ограничение страницы составляет 100 строк, и он работает нормально, но как только я увеличиваю этот предел до 500, запрос становится очень медленным и занимает почти 3-4 секунды. Если я увеличу лимит до более чем 1000 строк, он практически непригоден. Я не использую никаких преобразователей, таких как JsonConverter, в моих классах моделей.
Мой вопрос: сталкивался ли кто-нибудь с этой проблемой с. net SDK для DynamoDB, т.е. выборка 500 или более строк за один вызов БД становится очень медленной . Для сравнения: тот же запрос в той же таблице с использованием AWS CLI выполняется очень быстро.
Мой другой вопрос: использовал ли кто-нибудь другой подход к этой ситуации, т.е. ваш запрос возвращает более, скажем, 10 тыс. Строк, даже с ключом и выражения фильтра, и вы не используете разбиение на страницы и ограничение страниц для решения этой проблемы, а используете совершенно другой (и, вероятно, умный :)) подход.
PS: Я думаю, что я включил большинство шаблонов проектирования, предложенных Amazon для DynamoDB, например, наименьшее количество таблиц (у меня только одна), и я довольно четко представлял свои шаблоны доступа к базе данных, прежде чем начал работать над дизайном таблиц. Но из-за характера моего приложения я не могу помочь с 2-3 запросами, возвращающими такие большие данные.