Предполагам, че използвате официалния предоставен от MySQL JDBC драйвер Connector/J.
Вие изрично казвате на JDBC (и MySQL) да предават поточно резултатите ред по ред с statement.setFetchSize(Integer.MIN_VALUE);
От MYSQL Docs :
Всяка стойност, различна от Integer.MIN_VALUE
тъй като размерът на извличане се игнорира от MySQL и се прилага стандартното поведение. Целият набор от резултати ще бъде извлечен от JDBC драйвера.
Или не използвайте setFetchSize()
, така че JDBC драйверът ще използва стойността по подразбиране (0
), или задайте стойността на 0
изрично. Използване на стойността на 0
също така ще гарантира, че JDBC не използва MySQL курсори, което може да възникне в зависимост от версиите и конфигурацията на MySQL и Connector/J.