Проблема, с которой вы столкнулись, заключается в том, что для того, чтобы узнать, какие 1000 записей для выборки из базы данных фактически должны извлечь все 200000000 записей для их подсчета.
Основная стратегия борьбы с этой проблемой заключается в использовании предложения whereвместо смещения.
Если вам известны предыдущие 1000 строк (потому что это какой-то итеративно используемый запрос), вы можете вместо этого взять id и trans_id из последней строки этого набора и извлечь 1000 строк, следующих заэто.
Если цифра 200000000 не обязательно должна быть точной, и вы можете догадаться, с чего начать, то это может быть путь для решения проблемы.