Не загружайте весь набор: читайте пользователей порциями или потоком, обрабатывая с ограниченным параллелизмом. Для поиска одного пользователя нужен точечный запрос.
Как бы ты решил проблему с загрузкой миллиона пользователей в память (риск по памяти и задержке)?
Не загружайте весь набор: читайте пользователей порциями или потоком, обрабатывая с ограниченным параллелизмом. Для поиска одного пользователя нужен точечный запрос.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Не загружайте весь набор: читайте пользователей порциями или потоком, обрабатывая с ограниченным параллелизмом. Для поиска одного пользователя нужен точечный запрос.
Выбирайте только необходимые поля и используйте keyset pagination с устойчивым порядком. Если требуется согласованный снимок, оговорите его отдельно: пагинация по живым данным может пропускать изменения. Для длительной задачи сохраняйте checkpoint, чтобы повторять только незавершённую работу.