Уберите безусловную загрузку всех строк: используйте отбор нужных данных, порционное чтение или ленивую совместимую обёртку. Возможность не менять тесты зависит от того, какие операции они ожидают от фикстуры.
Если фикстура выполняет SELECT * и тестовая БД выросла до сотен миллионов пользователей, из-за чего данные перестали помещаться в оперативную память, как исправить проблему, изменив только фикстуру и не переписывая все тесты?
Уберите безусловную загрузку всех строк: используйте отбор нужных данных, порционное чтение или ленивую совместимую обёртку. Возможность не менять тесты зависит от того, какие операции они ожидают от фикстуры.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Уберите безусловную загрузку всех строк: используйте отбор нужных данных, порционное чтение или ленивую совместимую обёртку. Возможность не менять тесты зависит от того, какие операции они ожидают от фикстуры.
Если тесты лишь итерируют, можно сохранить этот контракт через потоковый cursor. Если требуют список, произвольную индексацию и повторные проходы, простая замена генератором сломает поведение. Тогда нужна совместимая абстракция или ограниченный согласованный набор данных. fetchmany не поможет, если затем все порции складываются в список. Учитывайте время жизни соединения и согласованность чтения.