首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >postgres立方体欧几里得距离查询性能问题

postgres立方体欧几里得距离查询性能问题
EN

Stack Overflow用户
提问于 2019-06-16 10:28:24
回答 1查看 560关注 0票数 3

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

代码语言:javascript
运行
AI代码解释
复制
CREATE TABLE documents(
   id bigint,
   title text,
   body text,
   vector double[],
   PRIMARY KEY(id)
);

我已经安装了cube扩展,并使用它从选定的文档中按相似度对文档进行排序,如下所示(如here所述):

代码语言:javascript
运行
AI代码解释
复制
SELECT id,title,body FROM documents ORDER BY cube(documents.vector) 
 <-> '(0.0990813672542572021,.. 0.0537704713642597198)'::cube  LIMIT 10;

我在这里设置了索引:CREATE INDEX ix_vect ON documents USING gist (cube(vector));

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

EN

回答 1

Stack Overflow用户

发布于 2020-06-13 08:23:18

通过doc使用CUBE的正确方法

代码语言:javascript
运行
AI代码解释
复制
SELECT c FROM test ORDER BY c <-> cube(array[0.5,0.5,0.5]) LIMIT 1;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56617971

复制
相关文章
[数据库]Postgres和Mysql性能比较
在 Arctype 社区里,我们回答了很多关于数据库性能的问题,尤其是 Postgres 和 MySQL 这两个之间的性能问题。在管理数据库中,性能是一项至关重要而又复杂的任务。它可能受到配置、硬件、或者是操作系统的影响。PostgreSQL 和 MySQL 是否具有稳定性和兼容性取决于我们的硬件基础架构。
宇宙无敌暴龙战士之心悦大王
2023/03/27
7.5K0
数据十问,问十道百
通过细微的十个小问题,以点画线,画出数据相关的知识面,直观把握知识,形成一个体系。
herain
2022/04/27
2570
数据十问,问十道百
循环查询数据的性能问题及优化
糟糕的代码,对代码维护、性能、团队协作都会造成负面影响,所以,先设计再实现,谋而后动。
王知无-import_bigdata
2020/06/06
3.5K0
Oracle性能优化-子查询到特殊问题
编辑手记:前面我们介绍常用的子查询优化方法,但总有一些情况时在规律之外。谨慎处理方能不掉坑。 前文回顾: 性能优化之查询转换 - 子查询类 将SQL优化做到极致 - 子查询优化 作者简介: 韩锋
数据和云
2018/03/07
1.9K0
Oracle性能优化-子查询到特殊问题
数学--数论--欧几里得定理和拓展欧几里得定理
证明: 我们首先约定:m = gcd(a,b) , n = gcd(b, q) , a = b*p +q。(这里的gcd含义跟上面一样,q的含义跟后面式子同)  1.  m 是a,b的最大公约数,那么m整除a,b      q = a - b*p      m也可以整除q     =>m就是b和q的公约数     =>n是b,q的最大公约数     =>n >=m
风骨散人Chiam
2020/11/06
8440
扩展欧几里得
基本算法:设a=qb+r。当中a,b。q,r都是整数。则gcd(a,b)=gcd(b,r)。即gcd(a,b)=gcd(b,a%b)。
全栈程序员站长
2022/07/08
5100
Elasticsearch长文本查询拒绝问题分析及性能优化
腾讯云ES客户-某头部在线教育公司在微信群中反馈连续两天在晚上19:30左右业务侧查询ES集群时出现较大面积查询拒绝现象,且查询耗时从原先的100ms以下上涨到900ms以上,如图1所示。
吴容
2021/06/21
2.7K1
Elasticsearch长文本查询拒绝问题分析及性能优化
多级部门查询性能问题解决方案
其实,涉及部门层级关系的问题在很多情形下都会遇到,特别是针对toB的应用开发场景。 但奇葩的是,在我们的项目里头,项目经理在前期需求调研时,预估的用户部门最大数为1k,于是相关的开发同事就按照最大数1k*4=4k的目标进行了设计实现,而真正交付到用户生产环境时同步的数据是1w。 What?也就是说,即使之前已经按照最大预估数进行了4倍数放大设计,但是现在是10倍。于是,各种问题接踵而至。 导致该问题出现的原因主要有一下几点:
编程随笔
2019/06/27
1.5K0
多级部门查询性能问题解决方案
高考真题看了吗?五三模拟做了吗?学好数理化,还得靠VR!
今天是高考第二天,不少家长都第一时间拿到了今年的考试真题,为明后年的考生做练习使用。尤其是数理化三科,考生向来采用题海战术。然而,随着科技的发展,你真的认为埋头做《5年高考3年模拟》还是最有效的学习方
VRPinea
2018/05/16
6600
扩展欧几里得算法
    有两个数 a b,现在,我们要求 a b 的最大公约数,怎么求?枚举他们的因子?不现实,当 a b 很大的时候,枚举显得那么的naïve ,那怎么做?
瑾诺学长
2018/09/21
1.6K0
扩展欧几里得算法
扩展欧几里得算法
欧几里得算法是用来求最大公约数的,gcd(a,b)=gcd(b, a%b),如此递归下去,直到a%b==0,然后返回。
灯珑LoGin
2022/10/31
3960
扩展欧几里得算法
python 记录欧几里得算法
一、递归法 #保证a>b def gcd(a,b): if b==0: return a else: return gcd(b, a%b) 一、递推法 def gcd(a, b) if a<b: a,b = b,a else: while(b > 0): r = a%b a = b b = r return a
lexingsen
2022/02/24
2150
扩展欧几里得算法
扩展欧几里得算法 用途 当我们已知a,b 扩展欧几里得算法可以求出满足 解集 表示a,b的最大公约数 前导知识 推导过程 其实扩展欧几里得的推导过程挺自然的 这样不断的递归下去 当b=0时 x=1,y=0 代码 注意: 我们在求 的时候需要用到上一层的x 但此时上一层x已经被赋值成了y 所以我们需要开一个中间变量来记录上一层的x int exgcd(int a,int b,int &x,i
attack
2018/04/11
1.5K0
使用 Thanos 查询前端优化查询性能
Thanos 中的 Query 组件可以提供一个统一的查询入口,但是当查询的数据规模较大的时候,对 querier 组件也会有很大的压力,为此 Thanos 也提供了一个 Query Frontend 的组件来提升性能。Thanos Query Frontend 是 Thanos Query 的前端,它的目标是将大型查询拆分为多个较小的查询,并缓存查询结果来提升性能。
我是阳明
2022/05/22
1.8K0
使用 Thanos 查询前端优化查询性能
MySql查询性能优化
在访问数据库时,应该只请求需要的行和列。请求多余的行和列会消耗MySql服务器的CPU和内存资源,并增加网络开销。 例如在处理分页时,应该使用LIMIT限制MySql只返回一页的数据,而不是向应用程序返回全部数据后,再由应用程序过滤不需要的行。 当一行数据被多次使用时可以考虑将数据行缓存起来,避免每次使用都要到MySql查询。 避免使用SELECT *这种方式进行查询,应该只返回需要的列。
lyb-geek
2018/07/26
2.1K0
优化查询性能(二)
索引通过维护常见请求数据的排序子集,提供了一种优化查询的机制。 确定哪些字段应该被索引需要一些思考:太少或错误的索引和关键查询将运行太慢; 太多的索引会降低插入和更新性能(因为必须设置或更新索引值)。
用户7741497
2022/06/08
2.4K0
Oracle查询性能优化
原则一:注意WHERE子句中的连接顺序: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾. 尤其是“主键ID=?”这样的条件。
用户7353950
2022/05/10
2.4K0
优化查询性能(一)
InterSystems SQL自动使用查询优化器创建在大多数情况下提供最佳查询性能的查询计划。该优化器在许多方面提高了查询性能,包括确定要使用哪些索引、确定多个AND条件的求值顺序、在执行多个联接时确定表的顺序,以及许多其他优化操作。可以在查询的FROM子句中向此优化器提供“提示”。本章介绍可用于评估查询计划和修改InterSystems SQL将如何优化特定查询的工具。
用户7741497
2022/06/08
2.1K0
优化查询性能(三)
可以使用解释或显示计划工具来显示SELECT、DECLARE、UPDATE、DELETE、TRUNCATE TABLE和一些INSERT操作的执行计划。这些操作统称为查询操作,因为它们使用SELECT查询作为其执行的一部分。InterSystems IRIS在准备查询操作时生成执行计划;不必实际执行查询来生成执行计划。
用户7741497
2022/06/08
1.3K0
点击加载更多

相似问题

距离查询的性能问题

12

欧几里得距离与HiveQL

11

围绕python和欧几里得距离计算的问题

15

计算平方欧几里得距离

13

带权欧几里得距离

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档