【问题标题】:Any method in PostgreSQL to create mutiple index entries on the same datumPostgreSQL 中在同一数据上创建多个索引条目的任何方法
【发布时间】:2020-04-25 05:26:38
【问题描述】:

我正在索引 PG 中的一些空间对象,此时我正在使用 PG 和 PostGis 来构建 R-tree。但是,有些对象太大而无法索引,所以我想先将它们拆分为更小的部分,然后按更小的部分对其进行索引。

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

有什么办法可以在 Gist 中解决这个问题吗?或者有没有其他框架可以解决这个问题?或者为什么在PG下不可能?

【问题讨论】:

    标签: postgresql indexing gis postgis


    【解决方案1】:

    这取决于你想对索引做什么。

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

    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 '...');
    

    即可以使用索引。问题在于简化的几何图形可能不相交,因此在极端情况下可能会出现误报。

    【讨论】:

      猜你喜欢
      • 2011-05-09
      • 1970-01-01
      • 2022-07-10
      • 1970-01-01
      • 2014-09-16
      • 2023-03-21
      • 1970-01-01
      • 2021-12-13
      • 1970-01-01
      相关资源
      最近更新 更多