Ваш вопрос довольно неопределенный.Нет лучшего в своем роде - это зависит от того, сколько у вас денег и какое оборудование.
Поскольку ваше отображение между Java и БД довольно простое, JDBC должно быть достаточно.JDBC создаст для вас курсор по мере необходимости;потерянный цикл по строкам в ResultSet
.В зависимости от базы данных вам может понадобиться настроить ее на использование курсоров.
Поскольку вы упоминаете «сотни гигабайт», это исключает большинство «простых» баз данных.Если у вас есть деньги, попробуйте Oracle.Если у вас нет денег, попробуйте MySQL или Postgres.
Вы также можете попробовать JavaDB (также известный как Derby).Но я не уверен, что производительность будет именно тем, что вам нужно.
Обратите внимание, что у них у всех есть свои причуды и "особенности", поэтому вы должны потратить пару недель, чтобы найти свой путь к ним.