查询慢速之间的H2

时间:2018-11-17 01:14:17

标签: performance h2 database-performance

我在H2中有一张表格,其中包含邮政编码(〜130万)至各自的纬度/经度(为双精度)。

我正在尝试使用以下查询(动态生成)过滤数据。

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

但是,尽管已经为两个列都建立了索引,但是查询仍然比我预期的慢得多-平均大约需要200毫秒。要查找数百个,这是一个问题。我很欣赏200ms的速度,但是对于索引来说,它似乎很慢,而且比进行表扫描时要快得多。

我感到困惑的是,如果我选择ID列并进行类似的BETWEEN查询,则会在20毫秒内得到一个结果。我确实感谢该ID具有UNIQUE索引,而我的数据却没有。

我正在使用H2 v1.4.196,并使用PreparedStatements通过JDBC访问我的数据库。

0 个答案:

没有答案