Если фикстура выполняет SELECT * и тестовая БД выросла до сотен миллионов пользователей, из-за чего данные перестали помещаться в оперативную память, как исправить проблему, изменив только фикстуру и не переписывая все тесты?

Уберите безусловную загрузку всех строк: используйте отбор нужных данных, порционное чтение или ленивую совместимую обёртку. Возможность не менять тесты зависит от того, какие операции они ожидают от фикстуры.

Короткий ответ

Что ответить на собеседовании

Уберите безусловную загрузку всех строк: используйте отбор нужных данных, порционное чтение или ленивую совместимую обёртку. Возможность не менять тесты зависит от того, какие операции они ожидают от фикстуры.

Подробный разбор

Ответ с пояснениями

Уберите безусловную загрузку всех строк: используйте отбор нужных данных, порционное чтение или ленивую совместимую обёртку. Возможность не менять тесты зависит от того, какие операции они ожидают от фикстуры.

Если тесты лишь итерируют, можно сохранить этот контракт через потоковый cursor. Если требуют список, произвольную индексацию и повторные проходы, простая замена генератором сломает поведение. Тогда нужна совместимая абстракция или ограниченный согласованный набор данных. fetchmany не поможет, если затем все порции складываются в список. Учитывайте время жизни соединения и согласованность чтения.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее