我很笨--学习PGVector的 1个小时我懂得了AI 基本的原理--要不你也试试!!
❝开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, OceanBase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,可以解决你的问题。加群请联系 liuaustin3 ,(共3400人左右 1 + 2 + 3 + 4 +5 + 6 + 7 + 8 +9)(1 2 3 4 5 6 7 8群已经爆满 9群 300+,开10群PolarDB专业学习群110+)
最近终于要开始搞pgvector,主要是公司的技术部要使用,学习这个部分的动力很多是自驱的,但没有方向是没有自驱的。今天我们正式开始学习pgvector
下面是基于PG16.10 pgvector最新版的0.81 2025年9月5日。PGVector是一个搞笑的向量数据库插件,支持多种向量计算和数据类型,提供高效的数据存储,和查询,PGvector的索引算法是IVFFlat,是一种基于倒排索引近似最临近的算法,可以用于高效查询向量之间相似度。他将向量空间分成若干划分区域,每个区域都包含一些向量,并创建倒排索引,用于给定向量相似的向量。
这里我们要提醒,IVFFlat是IVFADC算法的简化版本,适合召回精度要求高,但对查询耗时不严格的场景,
2026-01-27 01:43:33.063 EST [43601] LOG: database system is shut down
done
server stopped
waiting for server to start....2026-01-27 01:43:33.110 EST [44013] LOG: redirecting log output to logging collector process
2026-01-27 01:43:33.110 EST [44013] HINT: Future log output will appear in directory "log".
done
server started
[postgres@postgresql_per pgdata]$ psql
psql (16.10)
Type "help"forhelp.
postgres=# create extension vector;
CREATE EXTENSION
安装很方便,直接编译 vector 到PG数据库中,目前最新的版本 pgvector支持三种向量索引方式
1 IVF Flat 基于倒排文件索引
2 HNSW 分层导航分词
3 streaming DiskAnn pgvector原生内置
三种模式的区别为 1 IVF Flat : 内存占用较低,搜索速度比全表扫描快。但更新维护成本高,每次再有新数据进入都要重构索引。 2 HNSW : 实施更新,搜索和查询精度更好,同时支持压缩,但内存消耗的多,向量索引必须要存储在内存中,随着数据量的增加,硬件成本会提高,计算精度会下降。
第三种模式看似和最近SQL SERVER2025里面的新技术的名字类似,也是针对向量的降本增效的方法,具体需要扩展这里就不进行展示了。
基于上面我们提到的问题,PG上的pgvector我们只使用HNSW,
CREATE TABLE vecs (id int PRIMARY KEY, embedding vector(1536));
CREATE INDEX ON vecs USING hnsw(embedding vector_l2_ops) WITH (m=16, ef_construction=64);
上面是一个案例,中m16表达了,每个索引元素之间存在多少双向链接,取值可以在2-100之间,随着值的提高,会提供召回的数据量,但会增加索引生成的时间,影响查询的性能。
我们下面来一次简单的示例:HNSW 和 IVF 之间的区别
比如我们模拟一个找寻近似中文意思的语句,这里就要迁入 embedding模型了,比如
"我喜欢吃火锅" → [0.12, -0.08, 0.33, ...] (768维向量)
"麻辣烫很好吃" → [0.11, -0.07, 0.31, ...]
上面就是一个模型对于语句和文字的向量表达,维度越大,表达的信息的准确度越高。(那么向量机器学习中容易说胡话的原因就是模型不行了吧)
CREATE TABLE docs (
id SERIAL PRIMARY KEY,
content TEXT,
embedding VECTOR(3)
);
INSERT INTO docs (content, embedding)
VALUES ('我喜欢吃火锅', '[0.12, -0.08, 0.33]');
CREATE INDEX ON docs USING hnsw (embedding vector_cosine_ops);
SELECT id, content FROM docs ORDER BY embedding <-> '[0.11, -0.07, 0.31]' LIMIT 5;
You are now connected to database "test" as user "postgres".
test=# create extension vector;
CREATE EXTENSION
test=#
test=#
test=# CREATE TABLE docs (
test(# id SERIAL PRIMARY KEY,
test(# content TEXT,
test(# embedding VECTOR(3)
test(# );
ontent FROM docs ORDER BY embedding <-> '[0.11, -0.07, 0.31]' LIMIT 5;CREATE TABLE
test=# INSERT INTO docs (content, embedding)
test-# VALUES ('我喜欢吃火锅', '[0.12, -0.08, 0.33]');
INSERT 0 1
test=# CREATE INDEX ON docs USING hnsw (embedding vector_cosine_ops);
CREATE INDEX
test=#
test=# SELECT id, content FROM docs ORDER BY embedding <-> '[0.11, -0.07, 0.31]' LIMIT 5;
id | content
----+--------------
1 | 我喜欢吃火锅
(1 row)
test=#
所以今天我终于明白了PG vector的用法和基本的大模型的原理。
给定信息的矢量,通过大模型的算法,将语言文字向量化,然后通过反向的查询矢量,得到对应的文字。
和架构师沟通那种“一坨”的系统,推荐只能是OceanBase,Why ?
OceanBase Hybrid search 能力测试,平换MySQL的好选择
写了3750万字的我,在2000字的OB白皮书上了一课--记 《OceanBase 社区版在泛互场景的应用案例研究
OceanBase 6大学习法--OBCA视频学习总结第六章
OceanBase 6大学习法--OBCA视频学习总结第五章--索引与表设计
OceanBase 6大学习法--OBCA视频学习总结第五章--开发与库表设计
OceanBase 6大学习法--OBCA视频学习总结第四章 --数据库安装
OceanBase 6大学习法--OBCA视频学习总结第三章--数据库引擎
OceanBase 架构学习--OB上手视频学习总结第二章 (OBCA)
OceanBase 6大学习法--OB上手视频学习总结第一章
没有谁是垮掉的一代--记 第四届 OceanBase 数据库大赛
跟我学OceanBase4.0 --阅读白皮书 (OB分布式优化哪里了提高了速度)
跟我学OceanBase4.0 --阅读白皮书 (4.0优化的核心点是什么)
跟我学OceanBase4.0 --阅读白皮书 (0.5-4.0的架构与之前架构特点)
跟我学OceanBase4.0 --阅读白皮书 (旧的概念害死人呀,更新知识和理念)
OceanBase 学习记录-- 建立MySQL租户,像用MySQL一样使用OB
“合体吧兄弟们!”——从浪浪山小妖怪看OceanBase国产芯片优化《OceanBase “重如尘埃”之歌》
MongoDB “升级项目” 大型连续剧(3)-- 自动校对代码与注意事项
MongoDB “升级项目” 大型连续剧(2)-- 到底谁是"der"
MongoDB “升级项目” 大型连续剧(1)-- 可“生”可不升
MongoDB 大俗大雅,上来问分片真三俗 -- 4 分什么分
MongoDB 大俗大雅,高端知识讲“庸俗” --3 奇葩数据更新方法
MongoDB 大俗大雅,高端的知识讲“通俗” -- 2 嵌套和引用
MongoDB 大俗大雅,高端的知识讲“低俗” -- 1 什么叫多模
MongoDB 合作考试报销活动 贴附属,MongoDB基础知识速通
MongoDB 使用网上妙招,直接DOWN机---清理表碎片导致的灾祸 (送书活动结束)
MongoDB 2023年度纽约 MongoDB 年度大会话题 -- MongoDB 数据模式与建模
MongoDB 麻烦专业点,不懂可以问,别这么用行吗 ! --TTL
免费PolarDB云原生课程,听课“争”礼品,重塑云上知识,提高专业能力
非“厂商广告”的PolarDB课程:用户共创的新式学习范本--7位同学获奖PolarDB学习之星
“当复杂的SQL不再需要特别的优化”,邪修研究PolarDB for PG 列式索引加速复杂SQL运行
“PostgreSQL” 高性能主从强一致读写分离,我行,你没戏!
POLARDB 添加字段 “卡” 住---这锅Polar不背
PolarDB 版本差异分析--外人不知道的秘密(谁是绵羊,谁是怪兽)
PolarDB 答题拿-- 飞刀总的书、同款卫衣、T恤,来自杭州的Package(活动结束了)
PolarDB for MySQL 三大核心之一POLARFS 今天扒开它--- 嘛是火
PostgreSQL 新版本就一定好--由培训现象让我做的实验
说我PG Freezing Boom 讲的一般的那个同学,专帖给你,看看这次可满意
PostgreSQL 无服务 Neon and Aurora 新技术下的新经济模式 (翻译)
“PostgreSQL” 高性能主从强一致读写分离,我行,你没戏!
全世界都在“搞” PostgreSQL ,从Oracle 得到一个“馊主意”开始
PostgreSQL 加索引系统OOM 怨我了--- 不怨你怨谁
PostgreSQL “我怎么就连个数据库都不会建?” --- 你还真不会!
PostgreSQL 稳定性平台 PG中文社区大会--杭州来去匆匆
PostgreSQL 分组查询可以不进行全表扫描吗?速度提高上千倍?
POSTGRESQL --Austindatabaes 历年文章整理
PostgreSQL 查询语句开发写不好是必然,不是PG的锅
这个 PostgreSQL 让我有资本找老板要 鸡腿 鸭腿 !!
MySQL相关文章
一篇为MySQL用户,分析版本核心差异的文章--8.028-8.4的差异
那个MySQL大事务比你稳定,主从延迟低,为什么? Look my eyes! 因为宋利兵宋老师