Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Maneira mais rápida de iterar em uma tabela grande usando JDBC


Em primeiro lugar, você tem certeza de que precisa de toda a tabela na memória? Talvez você deva considerar (se possível) selecionar as linhas que deseja atualizar/mesclar/etc. Se você realmente precisa ter a tabela inteira, considere usar um ResultSet rolável. Você pode criar assim.
// make sure autocommit is off (postgres)
con.setAutoCommit(false);

Statement stmt = con.createStatement(
                   ResultSet.TYPE_SCROLL_INSENSITIVE, //or ResultSet.TYPE_FORWARD_ONLY
                   ResultSet.CONCUR_READ_ONLY);
ResultSet srs = stmt.executeQuery("select * from ...");

Ele permite que você mova para qualquer linha desejada usando métodos 'absolutos' e 'relativos'.