Установка pgvector в PostgreSQL
Установка pgvector это сборка расширения командой make install или готовый Docker-образ pgvector/pgvector, после чего в нужной базе выполняют CREATE EXTENSION vector. Расширение версии 0.8.7 работает с PostgreSQL 13 и новее и хранит векторы рядом с обычными таблицами, без отдельного сервиса.
Ответ за 30 секунд
Если PostgreSQL у вас уже есть, pgvector избавит от отдельной векторной базы. Ставьте образ pgvector/pgvector или собирайте расширение, а для эмбеддингов размерностью больше 2 000 берите тип halfvec, иначе индекс не построится.
Свой сервер с root-доступом: PostgreSQL и расширение ставите сами, оплата почасовая.
Сколько места и памяти займёт pgvector0.8.7текущая версия pgvector
13+версии PostgreSQL
2 000измерений максимум для индекса vector
01 · 1 мин
pgvector: векторный поиск прямо в PostgreSQL#
pgvector добавляет в PostgreSQL тип vector и поиск ближайших соседей по расстоянию L2, скалярному произведению, косинусу и другим метрикам. Векторы лежат в обычной таблице рядом с текстом, правами и связями, их бэкапит обычный pg_dump. Лицензия PostgreSQL License.
| Тип | Размер одного вектора | Предел для индекса |
|---|---|---|
| vector (float32) | 4 × размерность + 8 байт | 2 000 измерений |
| halfvec (float16) | 2 × размерность + 8 байт | 4 000 измерений |
| bit | для двоичных векторов | 64 000 измерений |
Хранить можно векторы до 16 000 измерений, но индекс по типу vector строится только до 2 000. Отдельная база вроде Qdrant нужна, когда векторов миллионы и поиск становится отдельной нагрузкой.
02 · 1 мин
pgvector в Docker и docker compose#
Образ pgvector/pgvector это официальный образ PostgreSQL с уже собранным расширением. Тег выбирают по версии базы, например pg18-trixie.
services:
db:
image: pgvector/pgvector:pg18-trixie
restart: unless-stopped
environment:
- POSTGRES_PASSWORD=длинный-пароль
ports: ["127.0.0.1:5432:5432"]
volumes: [pgdata:/var/lib/postgresql]
volumes:
pgdata:
После запуска подключитесь и включите расширение в нужной базе: docker compose exec db psql -U postgres -c "CREATE EXTENSION vector;". Включать его нужно один раз в каждой базе, где будут векторы.
Порт 5432 здесь привязан к 127.0.0.1: программы на этом сервере подключаются через localhost, контейнеры того же compose по имени сервиса db. Если база нужна с другого сервера, откройте порт только для его адреса и включите SSL в настройках PostgreSQL.
03 · 1 мин
Установка pgvector на свой PostgreSQL в Ubuntu#
- Поставьте заголовки PostgreSQL:
sudo apt install postgresql-server-dev-18(замените 18 на свою версию). Без них сборка падает с ошибкой postgres.h. - Соберите расширение:
cd /tmp
git clone --branch v0.8.7 https://github.com/pgvector/pgvector.git
cd pgvector
make
sudo make install
Затем CREATE EXTENSION vector; в нужной базе. На PostgreSQL 17.0-17.2 документация просит сначала обновиться до 17.3 или новее. Если планируете управляемую базу у провайдера, проверьте в её панели список доступных расширений: ставить своё расширение на чужой сервер нельзя.
04 · 1 мин
Индексы pgvector: HNSW или IVFFlat#
| HNSW | IVFFlat | |
|---|---|---|
| Скорость поиска | Выше при той же точности | Ниже |
| Построение | Медленнее, больше памяти | Быстрее, меньше памяти |
| Пустая таблица | Можно создать сразу | Нужны данные для обучения |
CREATE INDEX ON items USING hnsw (embedding vector_cosine_ops);
Индекс создают отдельно под каждую метрику. Большой HNSW строится заметно быстрее, если граф помещается в maintenance_work_mem: PostgreSQL сам предупредит, когда памяти не хватило. Только не задавайте её так, чтобы съесть всю память сервера. Индекс быстрее строить после загрузки данных, а не до.
Инструмент · 1 мин
Сколько места и памяти займёт pgvector#
Миллион векторов размерности 1024 в типе vector занимает около 4,1 ГБ, в halfvec вдвое меньше. Индекс HNSW добавляет сверху, и для быстрого поиска его держат в памяти. Резервные копии такой базы делают как у любой PostgreSQL, схема в разделе бэкапы.
Какой сервер нужен PostgreSQL с pgvector
Число векторов, размерность и соседство с основной базой: калькулятор подберёт конфигурацию
06 · 1 мин
Вопросы об установке pgvector#
Какой Docker-образ нужен для pgvector?
pgvector/pgvector с тегом под версию PostgreSQL, например pgvector/pgvector:pg18-trixie. Это официальный образ postgres с уже собранным расширением, переменные окружения те же.
Почему в pgvector не создаётся индекс на 3072 измерения?
Индексы по типу vector ограничены 2 000 измерений. Храните эмбеддинги как halfvec (до 4 000 для индекса) или уменьшите размерность в настройках модели эмбеддингов.
Нужно ли выполнять CREATE EXTENSION после установки pgvector?
Да, один раз в каждой базе, где нужны векторы. Сама установка только кладёт файлы расширения в PostgreSQL.
Почему этому можно верить
Как мы проверяли
Источники цифр на этой странице: VPS и VDS серверы Таймвеб Клауд, timeweb.cloud/services/vds-vps, проверено 14 октября 2026; Облачные базы данных Таймвеб Клауд, timeweb.cloud/services/dbaas, проверено 14 октября 2026; Маркетплейс приложений Таймвеб Клауд, timeweb.cloud/marketplace, проверено 14 октября 2026; pgvector на GitHub: установка, Docker-образ, типы и индексы, github.com/pgvector/pgvector, проверено 15 октября 2026; Лицензия pgvector (PostgreSQL License), github.com/pgvector/pgvector/blob/master/LICENSE, проверено 14 октября 2026.
Запустите свой сервер за пару минут
Почасовая оплата: тестовый стенд на сутки стоит десятки рублей, а не месячный тариф.
- NVMe-диски и гарантированная доля процессора
- Root-доступ и любой софт, от Docker до игровых серверов
- Маркетплейс: 91 приложение в один клик
- Бесплатный перенос проекта силами специалистов