Получить быстрый набор результатов с MySQL JDBC - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть таблица lineitem с 6001215 строками данных, и я хотел быстро получить результат этого запроса 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());
       }

1 Ответ

0 голосов
/ 04 апреля 2019

Пожалуйста, попытайтесь установить соединение с базой данных перед выполнением запроса, установление соединения в методе может снизить производительность, когда вы будете снова и снова вызывать этот метод, он будет каждый раз создавать соединение с БД и использовать prepareStatement.executeQuery (); вместо readyStatement.executeQuery (Query);

Используйте реализацию класса POJO, чтобы сохранить Resulset, извлеченный из таблицы базы данных, в список сущностей, а затем извлекать значения столбцов в любое время.

...