postgresql - postgres cube 欧氏距离查询性能问题

标签 postgresql performance cube

我有一个 postgres 数据库,其中包含一个包含 100 维词嵌入的文档表,并使用它来查找相似文档。

CREATE TABLE documents(
   id bigint,
   title text,
   body text,
   vector double[],
   PRIMARY KEY(id)
);

我已经安装了 cube 扩展,并使用它根据所选文档的相似性对文档进行排序(如 here 所述):

SELECT id,title,body FROM documents ORDER BY cube(documents.vector) 
 <-> '(0.0990813672542572021,.. 0.0537704713642597198)'::cube  LIMIT 10;

我在这里设置了索引: 使用 gist (cube(vector)) 在文档上创建索引 ix_vect;

我得到了预期的结果,但是对于大约 200 万行的表大小,查询时间非常长 ~30-45 秒。如何提高性能以将其降低到可接受的水平,即 <1 秒处理数百万行?

最佳答案

docCUBE的正确使用方法| :

SELECT c FROM test ORDER BY c <-> cube(array[0.5,0.5,0.5]) LIMIT 1;

关于postgresql - postgres cube 欧氏距离查询性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56617971/

相关文章:

Python 字符串连接性能

database - Postgresql - 每个人一个数据库,或每个客户一个数据库

postgresql - 如何在使用递归选择后代的 Postgres 查询中打印深度级别?

node.js - NodeJS,pg-promise 和数组作为参数

postgresql - 如何从 plpgsql 函数返回 RETURNING 子句的结果?

PHP 与 Javascript 高效 XML 解析器

php - mysql select查询的where子句顺序的改变是否会提高性能?

oracle - 物化 View 与 SSAS 多维数据集

java - 如何在java中将多个整数作为以空格分隔的单个输入,然后将它们分解成整数?

reporting-services - 查询包含未声明的 XXXXXName 参数。 SSRS2008/MDX 查询