java中的流式MySQL结果集

java中的流式MySQL结果集,java,mysql,performance,Java,Mysql,Performance,我一直致力于提高从MySQL表中获取记录的Java程序的性能(强调执行速度)。缓慢的原因是表中保存了大量记录 经过一些研究,我手头有两个选择。配料和2。分页 配料 没有尝试批处理,因为的JavaDoc表示它通常接受更新命令或插入命令 分页 由于Java对MySQL的多次调用,这使得这个过程非常缓慢 现在,我没有选择MySQL的流结果集 stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY,java.sql.R

我一直致力于提高从MySQL表中获取记录的Java程序的性能(强调执行速度)。缓慢的原因是表中保存了大量记录

经过一些研究,我手头有两个选择。配料和2。分页

  • 配料
  • 没有尝试批处理,因为的JavaDoc表示它通常接受更新命令或插入命令

  • 分页
  • 由于Java对MySQL的多次调用,这使得这个过程非常缓慢

    现在,我没有选择MySQL的流结果集

          stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY,java.sql.ResultSet.CONCUR_READ_ONLY);
    
          stmt.setFetchSize(Integer.MIN_VALUE);
    
    我的问题是,流式结果集是提高执行速度还是降低执行速度

    注:我已经完成了这些讨论,并且 你能开导一下吗。
    谢谢

    没有单一的答案。它取决于结果集的大小。对于较小(ish)的结果集,MySQL的默认行为可能会执行得更好,对于较大的结果集,它可能会很糟糕,因为它会首先将所有行加载到内存中(这需要时间,并且可能会导致过度的垃圾收集)。@MarkRotterVeel:非常感谢您的快速回复,Mark。我想要一个乐观的推动,继续努力