问题标签 [gist-index]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
165 浏览

sql - 地理点范围和数值范围查询的复合多列索引

我正在构建一个应用程序,服务器需要根据某些标准/过滤器选择行。其中之一是用户的位置和用户希望查看帖子的半径以及其他过滤器,例如日期范围和过滤器以获取另一列的值。这将用于临时事件发现应用程序。

我已阅读有关 PostGIS 的信息,并且知道有一种point数据类型。基于这个答案,我明白最好从相等列到范围列排序,即使我觉得地理点列应该是第一个。但主要问题是,如何创建这样的索引?我考虑过 GiST 索引,但不确定是否有帮助。

假设如下简化事件表(忽略有效位置数据):

因此,在此表中,用户将能够查询接近 (122,34) 距离为 100 公里的公共事件(假设前三行属于该区域)以及事件类型 0、1 或 2 介于日期 2020-07-05 和2020-07-07。用户将获得 ID 为 2 和 3 的行。

这是我想用适当的索引优化的查询。谢谢!

0 投票
0 回答
49 浏览

postgresql - postgresql KNN 查询性能不佳

有两台结构和配置相同的数据库机器,具有以下特点。数据库的结构和内容也相同。几乎 99% 的查询在新机器上的性能更好,只有少数是急剧下降的。试图缩小调查范围,我终于发现只有一个 KNN(K Nearest Neighbour)查询是真正的罪犯。以下是有关“地图”表(约 820k 行)的相关信息:

在下面的“解释分析”调查中,我使用了一个“点”进行测试(实际上除了一个长的不相关的字符串,为了方便起见,只是用“点”替换并由“缓冲区”中的 st_buffer 转换)

以下是实际的机器响应:

机器#1:16CPU | 64GB RAM | Linux Ubuntu 16.04.7 LTS | PostgreSQL 9.6.21)

机器#2:16CPU | 64GB RAM | Linux Ubuntu 20.04.2 LTS | PostgreSQL 13.2)

可以看出,机器#2 的性能急剧下降,尽管事实上这两台机器在所有方面都是相同的,包括配置也是如此。有谁知道如何处理这个问题?要检查什么以获得一些线索?

0 投票
1 回答
46 浏览

sql - 表中50m行的操作过程中不考虑创建的gist索引

我正在尝试基于两个多边形特征的交集编写一个新列,这些多边形特征在一个表中有 50m 行,我在运行它们之前创建了“gist”索引,但它需要很长时间,而且我无法在 Postgresql 中得到结果。计算中不使用要点索引。如何使用索引进行操作?

该模型附在下面的小提琴中,

小提琴手

我尝试使用“解释”检查索引,但我不确定它是如何工作的,

错误:运算符不存在:几何 = 整数第 1 行:EXPLAIN SELECT * FROM public."Operation" where buffer = 2;

任何输入都会非常有帮助。

0 投票
0 回答
41 浏览

python - 从 Python 脚本调用但在 PgAdmin 中运行良好时,Postgres 函数引发错误

我有一个名为“ medrealize ()”的 postgres 函数,我在其中创建临时表并使用以下行为临时表创建索引

从 pgadmin 调用该函数时,该函数运行没有任何问题。但是当从 python 调用函数时使用

我得到以下错误

知道为什么它在从 PgAdmin 调用时运行良好并在从 Python 调用时引发错误吗?