Установка pgvector в PostgreSQL: коротко и с данными

Конспект страницы: 6 разделов коротко, данные на 14 октября 2026 и ответы на 3 вопроса. Полный разбор с примерами: Установка pgvector в PostgreSQL.

Коротко

Установка pgvector это сборка расширения командой make install или готовый Docker-образ pgvector/pgvector, после чего в нужной базе выполняют CREATE EXTENSION vector. Расширение версии 0.8.7 работает с PostgreSQL 13 и новее и хранит векторы рядом с обычными таблицами, без отдельного сервиса. Если PostgreSQL у вас уже есть, pgvector избавит от отдельной векторной базы.

Конспект по разделам

pgvector: векторный поиск прямо в PostgreSQL

pgvector добавляет в PostgreSQL тип vector и поиск ближайших соседей по расстоянию L2, скалярному произведению, косинусу и другим метрикам. Векторы лежат в обычной таблице рядом с текстом, правами и связями, их бэкапит обычный pg_dump. Лицензия PostgreSQL License.

pgvector в Docker и docker compose

Образ pgvector/pgvector это официальный образ PostgreSQL с уже собранным расширением. Тег выбирают по версии базы, например pg18-trixie. После запуска подключитесь и включите расширение в нужной базе: docker compose exec db psql -U postgres -c "CREATE EXTENSION vector;".

Установка pgvector на свой PostgreSQL в Ubuntu

Затем CREATE EXTENSION vector; в нужной базе. На PostgreSQL 17.0-17.2 документация просит сначала обновиться до 17.3 или новее. Если планируете управляемую базу у провайдера, проверьте в её панели список доступных расширений: ставить своё расширение на чужой сервер нельзя.

Индексы pgvector: HNSW или IVFFlat

Индекс создают отдельно под каждую метрику. Большой HNSW строится заметно быстрее, если граф помещается в maintenance_work_mem: PostgreSQL сам предупредит, когда памяти не хватило. Только не задавайте её так, чтобы съесть всю память сервера.

Сколько места и памяти займёт pgvector

Миллион векторов размерности 1024 в типе vector занимает около 4,1 ГБ, в halfvec вдвое меньше. Индекс HNSW добавляет сверху, и для быстрого поиска его держат в памяти. Резервные копии такой базы делают как у любой PostgreSQL, схема в разделе бэкапы.

Запустите свой сервер за пару минут

Почасовая оплата: тестовый стенд на сутки стоит десятки рублей, а не месячный тариф.

Данные

ТипРазмер одного вектораПредел для индекса
vector (float32)4 × размерность + 8 байт2 000 измерений
halfvec (float16)2 × размерность + 8 байт4 000 измерений
bitдля двоичных векторов64 000 измерений
HNSWIVFFlat
Скорость поискаВыше при той же точностиНиже
ПостроениеМедленнее, больше памятиБыстрее, меньше памяти
Пустая таблицаМожно создать сразуНужны данные для обучения

Данные на 14 октября 2026.

Вопросы и ответы

Какой Docker-образ нужен для pgvector?

pgvector/pgvector с тегом под версию PostgreSQL, например pgvector/pgvector:pg18-trixie. Это официальный образ postgres с уже собранным расширением, переменные окружения те же.

Почему в pgvector не создаётся индекс на 3072 измерения?

Индексы по типу vector ограничены 2 000 измерений. Храните эмбеддинги как halfvec (до 4 000 для индекса) или уменьшите размерность в настройках модели эмбеддингов.

Нужно ли выполнять CREATE EXTENSION после установки pgvector?

Да, один раз в каждой базе, где нужны векторы. Сама установка только кладёт файлы расширения в PostgreSQL.