Поскольку пользователь никогда не будет рассматривать более одного экрана одновременно, вы не сможете объяснить ему необходимость в гигабайтах ОЗУ для этого.
База данных должна быть спроектирована / проиндексирована / оптимизирована для частичного извлечения данных, по крайней мере, для «наиболее распространенных» случаев.
Например, вы можете создать одну «отсортированную» версию набора данных для 10 наиболее часто используемых критериев сортировки.Не стесняйтесь хранить только 1000 первых и 1000 последних строк.Используйте знания о том, что именно пользователь собирается делать с этими данными, чтобы найти более оптимизированные структуры данных и т. Д. *
Вы можете использовать методы, подобные применяемому Ajax, чтобы создать «живое» впечатление.