PostgreSQL中可以在同一基准面上创建多个索引条目的任何方法

问题描述 投票:0回答:1

我正在为PG中的一些空间对象建立索引,这时我将PG与PostGis结合使用来构建R树。但是,有些对象太大而无法索引,因此我想先将它们拆分为较小的部分,然后再按较小的部分进行索引。

但是,我阅读了Gist的文档,发现没有地方可以分割(在索引级别)一个基准,除非我首先按原始关系分割它们。

有什么办法可以在Gist中解决此问题?还是有其他框架可以解决此问题?还是为什么在PG下不可能?

postgresql indexing gis postgis
1个回答
0
投票

取决于您究竟要对索引执行什么操作。

一个选择不是索引对象本身,而是简化版本:

CREATE INDEX ON atable USING gist (st_simplify(geom, 1, TRUE));

然后将其用作预过滤器:

SELECT ... FROM atable
WHERE st_intersects(st_simplify(geom, 1, TRUE), GEOMETRY '...')
  AND st_intersects(geom, GEOMETRY '...');

可以使用索引。问题在于,简化的几何可能不相交,因此在极端情况下您可能会得到假阴性。

© www.soinside.com 2019 - 2024. All rights reserved.