PostgreSQL 16 搭配 PgVector:Windows 11 完整安裝教程
一、前言
1. 向量數(shù)據(jù)庫
隨著大模型、AI 檢索、智能推薦、圖文匹配等業(yè)務(wù)快速落地,向量檢索成為技術(shù)架構(gòu)中不可或缺的一環(huán)。文本、圖片、音頻、視頻等非結(jié)構(gòu)化數(shù)據(jù),都會(huì)通過 Embedding 模型轉(zhuǎn)化為多維向量,業(yè)務(wù)依靠向量相似度完成匹配、搜索、聚類等操作。傳統(tǒng)關(guān)系型數(shù)據(jù)庫無法高效處理海量向量的相似度計(jì)算,專用向量數(shù)據(jù)庫應(yīng)運(yùn)而生。但獨(dú)立部署向量庫會(huì)增加運(yùn)維成本、數(shù)據(jù)同步成本與架構(gòu)復(fù)雜度。在此背景下,基于傳統(tǒng)數(shù)據(jù)庫擴(kuò)展實(shí)現(xiàn)向量能力的方案,憑借低侵入、易集成、復(fù)用原有生態(tài)等優(yōu)勢(shì),成為中小型項(xiàng)目、個(gè)人開發(fā)、企業(yè)內(nèi)部系統(tǒng)的首選。

2. PgVector 應(yīng)用場(chǎng)景
PgVector 作為 PostgreSQL 生態(tài)下的向量擴(kuò)展,完美融合了關(guān)系型數(shù)據(jù)庫的事務(wù)能力與向量檢索能力,典型應(yīng)用場(chǎng)景如下:

- AI 語義檢索:知識(shí)庫、問答系統(tǒng)、文檔檢索,將文本向量化后實(shí)現(xiàn)語義匹配;
- 多媒體檢索:圖片、音頻、視頻以向量形式存儲(chǔ),實(shí)現(xiàn)以圖搜圖、相似音視頻查找;
- 個(gè)性化推薦:用戶行為、內(nèi)容特征向量化,完成商品、內(nèi)容智能推薦;
- 數(shù)據(jù)分析與聚類:用戶分群、內(nèi)容歸類、異常檢測(cè)等向量聚類場(chǎng)景;
- 混合查詢業(yè)務(wù):同時(shí)需要結(jié)構(gòu)化數(shù)據(jù)查詢 + 向量相似度檢索的混合業(yè)務(wù),無需拆分多套存儲(chǔ)。
本文基于 Windows 11 系統(tǒng),搭配主流的 PostgreSQL 16 版本,手把手完成 PgVector 安裝、配置與功能驗(yàn)證,適合開發(fā)、測(cè)試、學(xué)習(xí)環(huán)境使用,如需在生產(chǎn)環(huán)境進(jìn)行使用,可以切換至Linux環(huán)境進(jìn)行安裝配置更佳。
二、關(guān)于 PgVector
1. PgVector 是什么
PgVector 是一款開源 PostgreSQL 擴(kuò)展插件,由 ankane 團(tuán)隊(duì)維護(hù),原生為 PostgreSQL 增加向量數(shù)據(jù)類型與向量檢索能力。它不改變 PostgreSQL 原有架構(gòu),以擴(kuò)展形式運(yùn)行,兼容 PostgreSQL 完整生態(tài)(事務(wù)、索引、JOIN、備份恢復(fù)、權(quán)限管理等)。目前支持 PostgreSQL多個(gè)版本,兼容主流操作系統(tǒng),同時(shí)提供源碼編譯、容器、包管理等多種部署方式,是目前Postgres 體系中使用最廣泛的向量檢索擴(kuò)展。
2. PgVector 可以做什么
- 多類型向量存儲(chǔ):支持普通浮點(diǎn)向量、半精度向量、二進(jìn)制向量、稀疏向量,適配不同精度與存儲(chǔ)需求;
- 豐富距離算法:內(nèi)置 L2 距離、內(nèi)積、余弦距離、L1 距離、漢明距離、杰卡德距離,覆蓋絕大多數(shù)相似度計(jì)算場(chǎng)景;
- 雙層檢索模式:支持精確檢索(百分百召回)與近似最近鄰檢索(犧牲少量召回?fù)Q取極致速度);
- 專業(yè)向量索引:提供 HNSW、IVFFlat 兩大主流向量索引,應(yīng)對(duì)千萬級(jí)甚至億級(jí)向量數(shù)據(jù)檢索優(yōu)化;
- 全量 SQL 兼容:使用標(biāo)準(zhǔn) SQL 完成向量增刪改查、條件過濾、聚合計(jì)算,學(xué)習(xí)成本極低;
- ACID 事務(wù)保障:繼承 PostgreSQL 事務(wù)特性,向量數(shù)據(jù)同樣支持事務(wù)、回滾、并發(fā)控制,數(shù)據(jù)安全性更高。
簡(jiǎn)單來說:有了 PgVector,你的 PostgreSQL 就能直接當(dāng)作「關(guān)系型數(shù)據(jù)庫 + 向量數(shù)據(jù)庫」二合一存儲(chǔ)使用。為什么要提基于PG生態(tài)的,很多中小企業(yè),我們的存儲(chǔ)和計(jì)算的能力都放在數(shù)據(jù)庫中。由于技術(shù)儲(chǔ)備的同學(xué)其實(shí)沒有那么多,因此我們盡量精簡(jiǎn)技術(shù)棧,降低運(yùn)維的難度。熟悉的PostGIS就是基于PG的GIS擴(kuò)展,我們很多的業(yè)務(wù)都可以基于PostGIS來進(jìn)行開展。
三、Windows11 環(huán)境下安裝詳解
這里介紹一下博主的開發(fā)環(huán)境,使用的Window11操作系統(tǒng),64位。設(shè)備硬件信息如下:

如果大家的開發(fā)環(huán)境是在Linux中的,看到這里就可以劃走了。言歸正傳,下面繼續(xù)深入對(duì)PgVector進(jìn)行講解。
1. 安裝方式匯總
一般來講,PgVector 主要有 4 種安裝方案,大家可根據(jù)自身環(huán)境選擇:
- 源碼編譯安裝:Linux、Mac、Windows 通用,自由度最高,可自定義版本,本文重點(diǎn)講解 Windows 源碼編譯;
- Docker 容器部署:一鍵拉起集成 Postgres + PgVector 的鏡像,適合快速體驗(yàn)、測(cè)試環(huán)境;
- 包管理器安裝:Linux 發(fā)行版、macOS 可通過 APT、YUM、Homebrew 等直接安裝,Windows 支持 conda 安裝;
- 云托管服務(wù):各大云廠商托管 PostgreSQL 服務(wù)大多已預(yù)裝 PgVector,無需手動(dòng)部署。
對(duì)于 Windows 11 本地開發(fā)、調(diào)試場(chǎng)景,這里我們使用最簡(jiǎn)單的方法,使用預(yù)編譯的版本進(jìn)行安裝。
2. 前置環(huán)境準(zhǔn)備
(1)安裝 PostgreSQL 16
首先確保系統(tǒng)已安裝 PostgreSQL 16,根據(jù)環(huán)境的需要,也可以安裝更高的版本,步驟簡(jiǎn)述:

- 前往 PostgreSQL 官網(wǎng)下載 Windows 安裝包(PostgreSQL 16.x);
- 雙擊安裝,自定義安裝路徑(本文默認(rèn)路徑:
D:\Program Files\PostgreSQL\16),設(shè)置超級(jí)管理員postgres密碼; - 保持默認(rèn)端口
5432,完成安裝,啟動(dòng) PostgreSQL 服務(wù)。
關(guān)鍵記錄:PostgreSQL 根目錄
PGROOT=D:\Program Files\PostgreSQL\16,后續(xù)編譯需要用到。
2.安裝 PgVector
這里我們使用一種的簡(jiǎn)單的方法來安裝PgVector。當(dāng)然,大家可以通說自定義編譯的方式進(jìn)行安裝。如果大家僅為了學(xué)習(xí)和使用PgVector,可以參考本文的使用預(yù)編譯的方式進(jìn)行安裝。
- 下載windows預(yù)編譯文件
在瀏覽器中輸入以下地址,可以找到已經(jīng)編譯好的PgVector的編譯版本,
https://github.com/andreiramani/pgvector_pgsql_windows/releases?page=1

- 下載適配PostgreSQL16版本的PgVector(本文使用穩(wěn)定版 v0.8.2)
https://github.com/andreiramani/pgvector_pgsql_windows/releases/tag/0.8.2_16.1

需要注意的是,大家在下載時(shí)根據(jù)本地的實(shí)際環(huán)境和軟件版本來選擇下載。
- 解壓文件

- 覆蓋PG16安裝目錄
將上面解壓出來的文件夾,除了readme.txt之外,都復(fù)制到PG16的安裝目錄下,復(fù)制過去之后,選擇覆蓋所有。

3. 重啟 PostgreSQL 服務(wù)
安裝完成后,重啟 PostgreSQL 服務(wù)使擴(kuò)展生效:
- 按下
Win + R輸入services.msc打開服務(wù)列表; - 找到
postgresql-x64-16服務(wù),右鍵重啟。

四、PgVector 功能測(cè)試
本節(jié)通過標(biāo)準(zhǔn) SQL 完成「創(chuàng)建數(shù)據(jù)庫 → 啟用擴(kuò)展 → 建表 → 插入向量 → 相似度檢索」全流程,驗(yàn)證前面的PgVector安裝環(huán)境可用性。
1. 連接 PostgreSQL
使用任意客戶端連接(PostgreSQL 自帶 psql、DBeaver、Navicat、pgAdmin 均可),本文以Navicat17為例:

2. 創(chuàng)建測(cè)試數(shù)據(jù)庫
-- 創(chuàng)建向量測(cè)試庫 CREATE DATABASE hydromind_db;
3. 啟用 PgVector 擴(kuò)展
每個(gè)數(shù)據(jù)庫都需要單獨(dú)執(zhí)行一次啟用命令:
CREATE EXTENSION IF NOT EXISTS vector;

執(zhí)行無報(bào)錯(cuò),代表 PgVector 擴(kuò)展加載成功。
4. 基礎(chǔ)實(shí)例測(cè)試
(1)創(chuàng)建帶向量字段的數(shù)據(jù)表
創(chuàng)建一張測(cè)試表,包含自增主鍵與 3 維向量 字段:
-- 創(chuàng)建測(cè)試數(shù)據(jù)表
CREATE TABLE sample_vectors (
id SERIAL PRIMARY KEY,
embedding VECTOR(3),
description TEXT
);(2)插入向量數(shù)據(jù)
向量以數(shù)組格式寫入:
-- 插入示例向量數(shù)據(jù)
INSERT INTO sample_vectors (embedding, description) VALUES
('[1,2,3]', '簡(jiǎn)單向量示例'),
('[4,5,6]', '另一個(gè)測(cè)試向量');(3)余弦距離查詢
演示另一種常用相似度算法(余弦距離):
-- 執(zhí)行向量相似性搜索測(cè)試 SELECT id, description, embedding <-> '[3,1,2]' AS distance FROM sample_vectors ORDER BY distance LIMIT 3;

以上 SQL 全部正常執(zhí)行、返回結(jié)果,說明 PostgreSQL 16 + PgVector0.8.2 在 Windows11 環(huán)境部署完成。
五、總結(jié)
- 本文基于 Windows 11 + PostgreSQL 16,使用預(yù)編譯安裝的方式完成 PgVector 部署,適配本地開發(fā)、學(xué)習(xí)、測(cè)試場(chǎng)景,步驟完整且可落地;
- PgVector 作為 Postgres 生態(tài)的向量擴(kuò)展,兼顧關(guān)系型數(shù)據(jù)庫的穩(wěn)定性與向量檢索的能力,大幅簡(jiǎn)化 AI 檢索類項(xiàng)目的架構(gòu)與運(yùn)維;
- 基礎(chǔ)測(cè)試僅演示了向量增查與基礎(chǔ)距離算法,后續(xù)可進(jìn)一步探索 HNSW/IVFFlat 向量索引、高維向量、混合條件查詢等高級(jí)用法。
如果是生產(chǎn)環(huán)境,建議優(yōu)先考慮 Linux 部署或 Docker 容器化方案;個(gè)人學(xué)習(xí)、本地調(diào)試,Windows 這套方案完全夠用。行文倉促,定有不足之處,歡迎各位朋友在評(píng)論區(qū)批評(píng)指正,不勝感激。
到此這篇關(guān)于PostgreSQL 16 搭配 PgVector:Windows 11 完整安裝教程的文章就介紹到這了,更多相關(guān)PostgreSQL搭配 PgVector內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PostgreSQL修改最大連接數(shù)的詳細(xì)操作步驟
PostgreSQL連接數(shù)超限導(dǎo)致錯(cuò)誤,需修改max_connections參數(shù)及操作系統(tǒng)ulimit限制,這篇文章主要介紹了PostgreSQL修改最大連接數(shù)的詳細(xì)操作步驟,需要的朋友可以參考下2025-06-06
PostgreSQL 重復(fù)數(shù)據(jù)處理的操作方法
這篇文章主要介紹了PostgreSQL 重復(fù)數(shù)據(jù)處理的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
PostgreSQL生成列實(shí)現(xiàn)過程介紹
PostgreSQL 12 增加新的特性——生成列(Generated Columns),也就是計(jì)算列。在之前版本也可以實(shí)現(xiàn),但需要定義函數(shù)和觸發(fā)器,利用該功能可以更容易使用并可以提升性能。生成列是給表指定計(jì)算列,其數(shù)據(jù)可以根據(jù)其他列數(shù)據(jù)自動(dòng)生成,當(dāng)原數(shù)據(jù)更新時(shí)其自動(dòng)更新2023-01-01
PostgreSQL的 archive_mode 參數(shù)配置示例詳解
本文詳細(xì)介紹了PostgreSQL的archive_mode參數(shù),包括其三個(gè)選項(xiàng)(off、on、always)的對(duì)比和使用場(chǎng)景,以及在不同模式下的配置和行為特點(diǎn),感興趣的朋友跟隨小編一起看看吧2025-11-11
PostgreSQL 備份與恢復(fù)實(shí)戰(zhàn)操作pg_dump / pg_restore 
本文將帶你深入掌握 PostgreSQL 最核心的備份恢復(fù)工具 —— pg_dump 和 pg_restore,涵蓋邏輯備份、物理備份、增量備份、自動(dòng)化腳本等企業(yè)級(jí)實(shí)踐,感興趣的朋友跟隨小編一起看看吧2025-10-10
postgreSQL中的內(nèi)連接和外連接實(shí)現(xiàn)操作
這篇文章主要介紹了postgreSQL中的內(nèi)連接和外連接實(shí)現(xiàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-01-01
PostgreSQL 刪除check約束的實(shí)現(xiàn)
這篇文章主要介紹了PostgreSQL 刪除check約束的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-02-02

