H2 между запросом медленно - PullRequest
0 голосов
/ 17 ноября 2018

У меня есть таблица в H2, содержащая почтовые индексы (~ 1,3 миллиона) для их соответствующих широт / долгот (как двойные).

Я пытаюсь отфильтровать данные, используя следующий запрос (сгенерированный динамически).

SELECT * FROM postcodes WHERE latitude BETWEEN 51.50 AND 51.51 AND longitude BETWEEN -0.15 AND -0.13

Однако, несмотря на индексирование обоих столбцов, запрос все еще намного медленнее, чем я ожидал - в среднем он занимает около 200 мс.С сотнями, чтобы посмотреть, это проблема.Я понимаю, что 200 мс - это быстро, но кажется, что для индекса он медленный и намного быстрее, чем если бы он выполнял сканирование таблицы.

Что меня смущает, так это то, что если я выбираю столбец идентификатора и аналогичныеBETWEEN запрос, я получаю результат в ~ 20 мс.Я действительно ценю, что у идентификатора есть индекс UNIQUE, в то время как у моих данных нет.

Я использую H2 v1.4.196 и получаю доступ к своей базе данных через JDBC, используя PreparedStatements.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...