벡터 검색(AI/임베딩)
Oracle
-- Oracle 23ai native VECTOR type:
CREATE TABLE docs (id NUMBER, content CLOB, embedding VECTOR);
-- Similarity search (cosine distance):
SELECT id FROM docs
ORDER BY VECTOR_DISTANCE(embedding, :query_vector, COSINE)
FETCH FIRST 5 ROWS ONLY;Oracle Database 23ai는 네이티브 VECTOR 데이터 타입과 AI Vector Search 기능을 제공한다. VECTOR_DISTANCE 함수는 COSINE/EUCLIDEAN/DOT 메트릭으로 유사도를 계산하며, 근사 검색을 위해 HNSW와 IVF 벡터 인덱스를 지원한다. 임베딩은 데이터베이스 내부 또는 외부 모델로 생성한다.
PostgreSQL
-- pgvector extension:
CREATE EXTENSION IF NOT EXISTS vector;
CREATE TABLE docs (id int, embedding vector(1536));
CREATE INDEX ON docs USING hnsw (embedding vector_cosine_ops);
-- 5 nearest neighbors (<-> Euclidean, <=> cosine):
SELECT id FROM docs ORDER BY embedding <=> :query_vec LIMIT 5;pgvector 확장은 PostgreSQL에 vector 타입과 유사도 연산자를 추가한다: <->(L2/유클리드), <=>(코사인), <#>(내적). HNSW 또는 IVFFlat 인덱스가 근사 최근접 이웃(ANN) 검색 속도를 높인다. RAG와 시맨틱 검색 애플리케이션에서 널리 사용된다.
MySQL
-- MySQL 9.0+ native VECTOR type:
CREATE TABLE docs (id INT, embedding VECTOR(1536));
-- Cosine distance (DISTANCE is HeatWave-only):
SELECT id, DISTANCE(embedding, :query_vec, 'COSINE') AS d
FROM docs ORDER BY d LIMIT 5;MySQL 9.0은 네이티브 VECTOR 데이터 타입과 STRING_TO_VECTOR/VECTOR_TO_STRING, VECTOR_DIM 함수를 추가했다(Community에도 포함). DISTANCE() 함수와 대규모 근사 벡터 검색은 Oracle Cloud의 MySQL HeatWave에서만 제공된다. Community/Enterprise에서는 애플리케이션이나 외부 벡터 저장소에서 거리를 계산한다. 이전 온프레미스 버전은 외부 벡터 저장소가 필요하다.
SQL Server
-- SQL Server 2025 native vector type:
CREATE TABLE docs (id INT, embedding VECTOR(1536));
-- Nearest neighbors by cosine distance:
SELECT TOP 5 id,
VECTOR_DISTANCE('cosine', embedding, @query_vec) AS distance
FROM dbo.docs ORDER BY distance;SQL Server 2025(및 Azure SQL)는 네이티브 vector 데이터 타입과 VECTOR_DISTANCE 함수(cosine/euclidean/dot)를 제공한다. 근사 최근접 이웃 검색을 위한 DiskANN 기반 벡터 인덱스는 개발 중이다. 임베딩은 Azure OpenAI 같은 외부 모델로 생성해 저장한다.
MongoDB
// Atlas Vector Search ($vectorSearch aggregation stage):
db.docs.aggregate([
{ $vectorSearch: {
index: "vector_idx",
path: "embedding",
queryVector: [0.12, 0.87, /* ... */],
numCandidates: 100,
limit: 5
} }
])MongoDB Atlas Vector Search는 $vectorSearch aggregation 단계로 임베딩을 조회하며, 내부적으로 HNSW 기반 근사 최근접 이웃 검색을 수행한다. 벡터 인덱스는 Atlas Search 인덱스로 정의한다. 이 기능은 관리형 Atlas 서비스 전용이다(온프레미스 Community 에디션에서는 사용 불가).
Redis
# Requires the RediSearch (Redis Stack) VECTOR field type.
# Define an HNSW vector index:
FT.CREATE docs_idx ON HASH PREFIX 1 docs: SCHEMA
embedding VECTOR HNSW 6 TYPE FLOAT32 DIM 1536 DISTANCE_METRIC COSINE
# KNN search (with a query vector):
FT.SEARCH docs_idx "*=>[KNN 5 @embedding $vec]" PARAMS 2 vec "..."Redis는 RediSearch 모듈(Redis Stack)을 통해 벡터 검색을 제공한다. VECTOR 필드 타입은 FLAT(정확) 또는 HNSW(근사) 인덱스와 COSINE/L2/IP 메트릭을 지원한다. 최근접 이웃은 FT.SEARCH 안의 KNN 구문으로 조회한다. 저지연 시맨틱 검색과 RAG에 사용된다.
Elasticsearch
# dense_vector field and kNN search:
PUT docs
{ "mappings": { "properties": { "embedding":
{ "type": "dense_vector", "dims": 1536, "similarity": "cosine" } } } }
GET docs/_search
{ "knn": { "field": "embedding", "query_vector": [0.12, 0.87],
"k": 5, "num_candidates": 100 } }Elasticsearch는 dense_vector 필드 타입과 내장 knn 검색으로 근사 최근접 이웃(HNSW) 쿼리를 지원하며, 유사도는 cosine/dot_product/l2_norm을 사용할 수 있다. 벡터 검색을 고전적인 텍스트 쿼리와 결합하면(하이브리드 검색 / RRF) 관련도를 높일 수 있다.