在JDBC中设置语句提取大小或使用LIMIT子句触发SQL查询之间有什么区别?

kal*_*kal 13 java sql jdbc

在JDBC中设置语句提取大小或使用LIMIT子句触发SQL查询之间有什么区别?

Pas*_*ent 13

SQL LIMIT会将SQL查询结果限制在指定范围内.您可以使用它来显示前X个结果数,或显示X - Y结果的范围.

获取大小是从数据库中一次通过JDBC驱动程序的物理反演,你通过查询滚动的行数ResultSetnext().例如,将查询提取大小设置为100.检索第一行时,JDBC驱动程序将检索前100行(如果少于100行满足查询,则检索所有行).检索第二行时,JDBC驱动程序仅返回本地内存中的行 - 它不必从数据库中检索该行.此功能通过减少数据库的调用次数(通常是网络传输)来提高性能.

因此,即使将JDBC的提取大小设置为SQL LIMIT子句,与强制SQL查询的最大区别LIMIT在于使用JDBC,您实际上仍然可以浏览所有结果.

  • 可能包含一个指向Javadoc的链接也很好,这也解释了fetchSize:http://java.sun.com/javase/6/docs/api/java/sql/Statement.html#setFetchSize(int) (2认同)