AnalyticDB PostgreSQL版向量索引查询

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 本案例对比了传统查询和使用向量索引执行查询的执行时间,助您体验使用向量索引查询带来的高效和快捷。

AnalyticDB PostgreSQL版向量索引查询


1. 创建带向量索引的表并生成测试数据

创建数据库账号,实例详情页登录数据库,执行以下语句,创建向量检索插件。

CREATE EXTENSION IF NOT EXISTS fastann;
set optimizer=off

执行以下语句,创建带向量索引的表。

select exec_sql_on_pg_ann_codebooks('delete from pg_ann_codebooks');
CREATE DATABASE VEC;
CREATE SCHEMA vec;
CREATE TABLE 'vec'.'vector_test_for_sift' (
        'id' bigint NOT NULL,
        'shot_time' timestamp,
        'device_id' bigint,
        'feature_data' 'float4'[],
        PRIMARY KEY(id)
) DISTRIBUTED BY (id);
ALTER TABLE vec.vector_test_for_sift ALTER COLUMN shot_time SET STORAGE PLAIN;
ALTER TABLE vec.vector_test_for_sift ALTER COLUMN device_id SET STORAGE PLAIN;
ALTER TABLE vec.vector_test_for_sift ALTER COLUMN feature_data SET STORAGE PLAIN;
CREATE INDEX idx_vector_test_for_sift_device_id ON vec.vector_test_for_sift (device_id);
CREATE INDEX idx_vector_test_for_sift_shot_time ON vec.vector_test_for_sift (shot_time);
CREATE INDEX idx_vector_test_for_sift_feature_data ON vec.vector_test_for_sift USING ann(feature_data) WITH (dim=128,pq_segments=16,hnsw_m=16,external_storage=1);

2. 导入数据

将脚本adbpg_test_tools上传至ECS。

上传至已购买的ECS实例。

打开abdpg_test_tools文件夹,将“configuration/dbConf”文件中的信息修改为已购买AnalyticDB PostgreSQL 6.0版实例的信息,设置地址、端口、密码、数据、表名等连接信息。示例如下:


          

执行以下语句,生成10W测试数据。


          

执行以下语句,导入测试数据。


          

连接AnalyticDB PostgreSQL 6.0版实例,并执行ANALYZE命令。


          

3. 不使用向量索引进行查询

执行以下语句,不使用向量索引进行查询。


         

返回结果如下:


         

执行以下语句,查看执行计划。


         

返回结果如下:


         

可以看到,执行逻辑是先使用顺序扫描,然后再进行排序,总共耗时72ms.。

4. 使用向量索引进行查询

换用重载过的操作符 <-> 比较向量的距离,使用向量索引进行查询。


         

返回相同的查询结果:


         

执行以下语句,查看执行计划。


         

返回结果如下:


         

从执行计划可以看出,使用向量索引,耗时仅13ms。

将两种执行方式的结果求交集,统计数量,观察召回性能。


         

执行结果为:


         

从执行结果看到总共数量为10条,在这个示例中两者的执行结果完全相同,召回率良好。

实验链接:https://developer.aliyun.com/adc/scenario/d4b623253ba14b5595cf825518883062

相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
2月前
|
监控 关系型数据库 数据库
PostgreSQL的索引优化策略?
【8月更文挑战第26天】PostgreSQL的索引优化策略?
57 1
|
2月前
|
机器学习/深度学习 SQL 数据挖掘
ADB优化器背后的秘密:如何用成本估算和规则引擎编织高效的查询网络?
【8月更文挑战第27天】AnalyticDB (ADB) 是一款专为大规模数据集设计的高性能分析型数据库。本文深入探讨ADB的优化器如何通过成本估算、规则引擎及机器学习等策略生成高效执行计划。成本估算是选择最优路径的关键;规则引擎通过谓词下推等手段优化查询;机器学习则使优化器能基于历史数据预测执行效率。结合示例代码与执行计划分析,展现了ADB在提升查询性能方面的强大功能。未来,ADB将继续进化以满足日益增长的大数据分析需求。
31 0
|
2月前
|
Java 数据库连接 数据库
实时数仓 Hologres产品使用合集之怎么查询版本
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
2月前
|
SQL 关系型数据库 专有云
实时数仓 Hologres产品使用合集之如何针对模糊匹配查询设置索引
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
2月前
|
监控 Java 数据库连接
实时数仓 Hologres产品使用合集之查询结果条数不同是什么原因
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
2月前
|
缓存 关系型数据库 数据库
PostgreSQL 查询性能
【8月更文挑战第5天】PostgreSQL 查询性能
43 8
|
2月前
|
SQL 关系型数据库 MySQL
SQL Server、MySQL、PostgreSQL:主流数据库SQL语法异同比较——深入探讨数据类型、分页查询、表创建与数据插入、函数和索引等关键语法差异,为跨数据库开发提供实用指导
【8月更文挑战第31天】SQL Server、MySQL和PostgreSQL是当今最流行的关系型数据库管理系统,均使用SQL作为查询语言,但在语法和功能实现上存在差异。本文将比较它们在数据类型、分页查询、创建和插入数据以及函数和索引等方面的异同,帮助开发者更好地理解和使用这些数据库。尽管它们共用SQL语言,但每个系统都有独特的语法规则,了解这些差异有助于提升开发效率和项目成功率。
133 0
|
2月前
|
关系型数据库 数据库 PostgreSQL
PostgreSQL索引维护看完这篇就够了
PostgreSQL索引维护看完这篇就够了
168 0
|
3月前
|
存储 JSON Cloud Native
云原生数据仓库使用问题之怎么在ADB中添加JSON索引
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
2月前
|
缓存 数据库
实时数仓 Hologres产品使用合集之如何查看并分析历史查询语句
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。

热门文章

最新文章

相关产品

  • 云原生数据仓库AnalyticDB MySQL版
  • 云原生数据仓库 AnalyticDB PostgreSQL版
  • 下一篇
    无影云桌面