mysql jdbc默认把select的所有结果全部取回,放到内存中,如果是要遍历很大的表,则可能把内存撑爆. 一种办法是:用limit,offset,但这样你会发现取数据的越来越慢,原因是设置了offset,mysql需要将读取位置移动到offset的位置,随着offset增大,取数据也越来越慢: 另外一种办法是:用数据流的方式取数据,这时需要设置: stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY, java.s