相关疑难解决方法(0)

是否有postgres CLOSEST运营商?

我正在寻找一些东西,如下表:

| id | number |
|  1 |     .7 |
|  2 |   1.25 |
|  3 |   1.01 |
|  4 |    3.0 |
Run Code Online (Sandbox Code Playgroud)

查询SELECT * FROM my_table WHERE号码CLOSEST(1)将返回第3行.我只关心数字.现在我有一个程序只是循环遍历每一行并进行比较,但我认为信息应该可以从b树索引获得,所以这可能是一个内置的,但我找不到任何文件表明它确实如此.

sql postgresql

15
推荐指数
3
解决办法
8625
查看次数

PostGIS中的K-最近邻查询

我在PostGIS中使用以下最近邻查询:

SELECT g1.gid g2.gid FROM points as g1, polygons g2   
WHERE g1.gid <> g2.gid
ORDER BY g1.gid, ST_Distance(g1.the_geom,g2.the_geom)
LIMIT k;
Run Code Online (Sandbox Code Playgroud)

现在,我已经在两个表上的the_geom和gid列上创建了索引,这个查询所花费的时间比涉及空间连接的其他空间查询要多两个表.

有没有更好的方法找到K-最近邻居?我正在使用PostGIS.

而且,尽管在几何列上创建了索引,但另一个查询占用了异常长的时间:

select g1.gid , g2.gid from polygons as g1 , polygons as g2
where st_area(g1.the_geom) > st_area(g2.the_geom) ;
Run Code Online (Sandbox Code Playgroud)

我相信,这些查询并没有受到主要指标的影响,但为什么呢?

鉴于此查询:

select a.polyid , sum(length(b.the_geom)) from polygon as a , roads as b  
where st_intersects(a.the_geom , b.the_geom);
Run Code Online (Sandbox Code Playgroud)

尽管涉及比"多边形"或"点"表大得多的"道路"表并且还涉及更复杂的空间算子,但是在一段时间之后返回结果.

postgresql indexing postgis nearest-neighbor

12
推荐指数
3
解决办法
1万
查看次数

标签 统计

postgresql ×2

indexing ×1

nearest-neighbor ×1

postgis ×1

sql ×1