import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class Test1 { private static Connection conn = null; private static final String URL_FIXED_PROPS = "?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8"; private static final String ENABLE_STREAM_CUT = "&clobberStreamingResults=true"; static public void main(String[] args) { for (int testSize = 100; testSize <= 1000000; testSize *= 100) { String url = "jdbc:mysql://" + "localhost" + ":" + "3306" + URL_FIXED_PROPS + ENABLE_STREAM_CUT; try { conn = java.sql.DriverManager.getConnection(url, "root", ""); java.sql.Statement ds = conn.createStatement(); ds.execute("CREATE DATABASE IF NOT EXISTS TEST"); conn.setCatalog("TEST"); PreparedStatement insert = conn .prepareStatement("insert into T1(F1) values (?)"); ds = conn.createStatement(); ds.execute("DROP TABLE `T1`"); ds.execute("CREATE TABLE `T1`(`F1` INTEGER)"); for (int i = 0; i < testSize; i++) { insert.setInt(1, i); insert.execute(); } PreparedStatement getDiscovered2 = conn .prepareStatement("SELECT F1 FROM T1 "); getDiscovered2.setFetchSize(Integer.MIN_VALUE); ResultSet rs = getDiscovered2.executeQuery(); int i = 0; while (rs.next() && i < 100) { i++; } long start = System.currentTimeMillis(); // start timing rs.close(); long end = System.currentTimeMillis(); // start timing System.out.println("took: " + (end - start)); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }