Я пытаюсь подключиться к моей базе данных MySQL с помощью Java. Вот код:Запрос Java MySQL медленнее, чем ожидалось
Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
java.sql.Statement stmt = connection.createStatement();
long startTime = System.currentTimeMillis();
stmt.execute("SELECT row_1, row_2, row_3, row_4 FROM dataset where row_5 is null and row_6 is null limit 100");
long endTime = System.currentTimeMillis();
System.out.println("That took " + (endTime - startTime) + " milliseconds");
ResultSet rs = stmt.getResultSet();
while (rs.next()) {
System.out.println(rs.getString("row_1"));
}
stmt.close();
В таблице 'Набор данных' 5 миллионов строк, и индексированный по первичной (row_1, row_2, row_3, row_4), а второй индекс (row_5 и row_6).
Uncached, этот запрос занимает 1,9 мс, используя SequelPro для Mac (программное обеспечение для управления базами данных). Однако, когда я запускаю код выше в Java, он занимает около 1800 мс (без кэша). Пожалуйста, дайте мне знать, если это просто Java, который работает медленно или есть что-то, что я могу сделать, чтобы оптимизировать запрос в Java, потому что он отлично работает с использованием SequelPro или с использованием других языков сценариев.
Когда вы выполнили запрос в sequelPro, вы учитывали время соединения с БД, как в коде? – pedromarce
Как вы измеряете время? –
MySQL работает медленнее на Mac. Попробуйте сделать виртуальную машину с linux (centos, ubuntu) и установить на нее mysql. – Meiblorn