我有一个包含6001215行数据的lineitem表,我想快速获取此查询SELECT * FROM LINEITEM
的结果,然后处理内存中结果集中的数据。
我有这段代码,但是还是很慢。
String Query = "SELECT * FROM LINEITEM";
Properties p = new Properties();
p.setProperty("user", "root");
p.setProperty("password", "root");
p.setProperty("MaxPooledStatements", "10000");
p.setProperty("cachePrepStmts", "true");
p.setProperty("useServerPrepStmts", "true");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/tpch",p);
conn.setAutoCommit(false);
PreparedStatement preparedStatement = conn.prepareStatement(Query);
resultSet = preparedStatement.executeQuery(Query);
} catch (Exception e) {
System.err.println("Got an exception! ");
System.err.println(e.getMessage());
}
答案 0 :(得分:0)
请在运行查询之前尝试建立数据库连接,当您再次调用该方法时,在方法中建立连接会降低性能,因为该方法每次都会创建数据库连接并使用prepareStatement.executeQuery();。而不是prepareStatement.executeQuery(Query);
使用POJO类实现将从数据库表中获取的Resulset保存到实体列表中,然后在需要时检索列值。