Поэтому я пытаюсь использовать SQLite с довольно простым SQL-запросом (для тех, кто не знаком с GLOB, он похож на LIKE):
SELECT * FROM dictionary where word GLOB '[paple][paple][paple][paple][paple]';
Я могу запустить это в SQLite Manager, и это займет около50 мс, чтобы получить все записи.Теперь я пишу следующий код на Java, и это занимает почти 1,5 секунды, что кажется смехотворно медленным по сравнению.Я понимаю, что это может занять немного больше времени, но 1450 мс - это недопустимо медленно:
Connection conn = DriverManager.getConnection("jdbc:sqlite:dictionary.sqlite");
Statement stat = conn.createStatement();
long start = System.currentTimeMillis();
ResultSet rs = stat.executeQuery("SELECT * FROM dictionary where word GLOB '[paple][paple][paple][paple][paple]';");
while (rs.next()) {
System.out.println("word = " + rs.getString("word"));
}
rs.close();
conn.close();
long end = System.currentTimeMillis();
System.out.println("Took: " + (end - start));
У меня такое ощущение, что каждый раз, когда я вызываю ResultSet.next (), он должен повторно запрашивать базу данных, посколькуне сразу получаю все записи, но я не уверен на 100%.Я чувствую, что должен быть намного более эффективный способ сделать это.Поэтому мой вопрос: кто-нибудь знает, как улучшить Java-код, чтобы он был намного быстрее?
PS: я использую sqliteJDBC .Может ли реализация здесь замедлить меня?Просто мысль у меня была.