安装指南
VectorChord 已在以下操作系统上通过测试:
- Ubuntu (x86_64, aarch64)
- macOS (x86_64, aarch64)
- Windows (x86_64)
- Alpine Linux (x86_64, aarch64) 1
- Debian (powerpc64le, s390x, riscv64) 2
如果您在上述任何操作系统上遇到问题,请提交 Bug 报告;如果您需要更多平台支持,欢迎提交功能请求。
Docker
VectorChord 镜像
体验 VectorChord 最简便的方式是直接运行开箱即用的 Docker 镜像。
- 在 Docker 中启动 VectorChord 容器。
- 使用
psql命令行工具连接到数据库。默认用户名为postgres。
- 执行以下 SQL 语句以确保扩展已启用。
为了充分发挥性能,请通过添加如下参数将数据卷挂载到 PostgreSQL 数据目录:
- 在 PostgreSQL 18 上:
-v $PWD/pgdata:/var/lib/postgresql/18/docker - 在 PostgreSQL 14、15、16 和 17 上:
-v $PWD/pgdata:/var/lib/postgresql/data
您可以参考基础父镜像的说明文档(https://hub.docker.com/_/postgres/)来配置 PostgreSQL。
VectorChord Suite 镜像
除了仅包含 VectorChord 扩展的基础镜像外,我们还提供了全合一镜像 tensorchord/vchord-suite:pg18-latest。该综合镜像包含了所有官方 TensorChord 扩展。开发者应根据支持矩阵选择与所需扩展版本兼容的镜像标签。
- 在 Docker 中启动 VectorChord 容器。
其余步骤与上文一致。
VectorChord Scratch 镜像
我们提供了一个仅包含 VectorChord 相关文件的 scratch 镜像。您可以使用 Docker 的 COPY 指令将 VectorChord 安装到任何镜像中,例如:
该镜像同样可以作为 CloudNativePG 的镜像卷扩展(Image Volume Extension)使用。另请参阅:
源码编译
编译环境要求:
- 任意版本的
make clang >= 16及libclangrust >= 1.93及cargo
在大多数平台上推荐使用 Rustup 安装 Rust,而在 Alpine Linux 上则建议使用系统包管理器安装。
您可以设置环境变量 CC 来为构建系统指定所需的 C 编译器。如果不设置该变量,构建系统会自动搜索 clang 和 gcc。若要使用 clang 编译所有 C 代码,请将 CC 设置为 clang 的路径;若要使用 gcc 编译所有 C 代码,请将 CC 设置为 gcc 的路径(注意:此时要求 gcc >= 14)。
Rust 版本要求并非长期不变的承诺;我们会在每次发布新版本时上调所需的最低 Rust 版本。
上述编译要求仅适用于 x86_64 和 aarch64 架构。对于包括 powerpc64le、s390x 和 riscv64 在内的所有其他架构,均需要使用 nightly 版本的 Rust 以及最新版本的 Clang。
如果您尚未安装 PostgreSQL,请先安装 PostgreSQL。如果您尚未安装 pgvector,可以在执行第 3 步之前安装 pgvector。
- 下载源码,并使用
make进行编译和安装。
- 修改
shared_preload_libraries以加载该扩展来配置 PostgreSQL,然后重启 PostgreSQL 集群。
- 执行以下 SQL 语句以确保扩展已启用。
编译调优
VectorChord 会针对 SIMD 代码执行运行时 CPU 指令集分发(runtime CPU dispatch)。如果您希望编译器针对特定 CPU 对整个程序进行优化,可以指示编译器为该特定 CPU 生成代码。
若要查看当前目标平台(target triple)支持的所有有效 CPU 选项及默认 CPU,请运行:
若要针对当前宿主机生成优化代码,请运行:
请注意,指定特定 target-cpu 生成的二进制文件与其他型号的 CPU 不兼容。
您也可以通过 Cargo 配置文件来完成此设置:
Debian
如果您尚未安装 PostgreSQL,请参照 https://www.postgresql.org/download/linux/debian/ 进行安装。如果您尚未安装 pgvector,可以在执行第 3 步之前通过 apt install postgresql-18-pgvector 进行安装。
VectorChord 的新版本发布托管于 github.com/pgsty/vchord/releases,而历史版本(1.1.1 及更早版本)仍可在 github.com/tensorchord/VectorChord/releases 获取。
- 在发布页面下载 Debian 软件包,并通过
apt进行安装。
- 修改
shared_preload_libraries以加载该扩展来配置 PostgreSQL,然后重启 PostgreSQL 集群。
- 执行以下 SQL 语句以确保扩展已启用。
Ubuntu
如果您尚未安装 PostgreSQL,请参照 https://www.postgresql.org/download/linux/ubuntu/ 进行安装。如果您尚未安装 pgvector,可以在执行第 3 步之前通过 apt install postgresql-18-pgvector 进行安装。
VectorChord 的新版本发布托管于 github.com/pgsty/vchord/releases,而历史版本(1.1.1 及更早版本)仍可在 github.com/tensorchord/VectorChord/releases 获取。
- 在发布页面下载 Debian 软件包,并通过
apt进行安装。
- 修改
shared_preload_libraries以加载该扩展来配置 PostgreSQL,然后重启 PostgreSQL 集群。
- 执行以下 SQL 语句以确保扩展已启用。
PGXN
编译环境要求请参阅源码编译。
如果您尚未安装 PostgreSQL,请先安装 PostgreSQL。如果您尚未安装 pgvector,可以在执行第 3 步之前通过 pgrxclient install vector 进行安装。
- 使用以下命令从 PostgreSQL Extension Network (PGXN) 安装 VectorChord:
- 修改
shared_preload_libraries以加载该扩展来配置 PostgreSQL,然后重启 PostgreSQL 集群。
- 执行以下 SQL 语句以确保扩展已启用。
PGXN 上的 VectorChord 0.4.1 软件包存在问题,请勿使用。请改用 0.4.2 或更高版本。
预编译二进制文件
deprecated预编译二进制文件可能与您机器上安装的 PostgreSQL 存在 ABI 不兼容,这可能会导致静默错误。在此情况下,我们强烈建议您从源码进行编译。
如果您尚未安装 PostgreSQL,请先安装 PostgreSQL。如果您尚未安装 pgvector,可以在执行第 3 步之前安装 pgvector。
- 在发布页面下载预编译二进制文件,并参考您所用发行版的文档重新打包,然后通过系统包管理器进行安装。虽然我们不建议这样做,但如果您需要,也可以直接将文件手动复制到系统目录中:
- 修改
shared_preload_libraries以加载该扩展来配置 PostgreSQL,然后重启 PostgreSQL 集群。
- 执行以下 SQL 语句以确保扩展已启用。