· vector-database / qdrant / weaviate

Vector database tốt nhất 2026: Qdrant, Vectorize, Pinecone

Qdrant cho edge và hybrid search, Vectorize cho Workers deployment không cần hạ tầng, Pinecone cho sự đơn giản managed, pgvector nếu bạn đã dùng Postgres.

Bởi

2.703 từ · 14 phút đọc

Qdrant nếu bạn đang xây dựng ở edge hoặc cần hybrid search chuẩn production — đây là client duy nhất trong bài này chạy được trên Cloudflare Workers natively và tích hợp sẵn DBSF fusion. Cloudflare Vectorize nếu bạn đã trên Workers và muốn vector store đặt cùng vị trí mà không cần vận hành hạ tầng. Pinecone nếu bạn muốn namespace model đơn giản, tính phí theo GB dự đoán được, và API surface nhỏ nhất có thể. Weaviate nếu benchmark QPS là yêu cầu thực. pgvector nếu bạn đã trên Postgres và 1M vector là đủ. Chroma nếu bạn đang prototype ở local và muốn dùng cùng client lên cloud sau mà không cần thay code. Đây là cách từng vector database so sánh về giá, hybrid search, khả năng tương thích edge, và chi phí vận hành.

Bài này dành cho ai

Developer đang chọn vector store cho RAG pipeline, tính năng semantic search, hoặc hệ thống gợi ý. Nếu bạn đang đánh giá công cụ keyword search, Best Search-as-a-Service là bài so sánh phù hợp hơn. Nếu bạn đã trên Postgres và chỉ cần biết pgvector có đủ dùng không, câu hỏi đó được trả lời trực tiếp hơn trong Cách thiết lập vector search với pgvector.

Cách chúng tôi đánh giá

Năm tiêu chí, được cân nhắc theo những gì thực sự làm production deployment trục trặc:

  • Edge runtime: JavaScript client có chạy trên Cloudflare Workers mà không cần Node.js polyfill không?
  • Hybrid search: Fusion dense + sparse — mức độ hoàn chỉnh và GA đến đâu?
  • Pricing: Theo GB, theo dimension, theo node — và 1M × 1536d thực sự tốn bao nhiêu mỗi tháng.
  • DX: Chất lượng SDK, khả năng dùng free tier, thời gian từ lúc đăng ký đến query đầu tiên.
  • Chi phí vận hành: Serverless, managed cloud, hay Kubernetes.

Chúng tôi không chạy benchmark trung lập. Các con số benchmark xuất hiện trong bài (của Weaviate) đều do vendor tự công bố — phương pháp được trình bày trong phần đó.

Tổng quan giá vector database

ProviderFree tier~$/tháng tại 1M × 1536dMô hình tính phí
Qdrant Cloud0.5 vCPU / 1GB RAM / 4GB disk~$25–40 (node 1 vCPU)Theo node
Weaviate CloudKhông có~$66 (Flex $45 + ~$21 storage)Theo dimension + SLA tier
PineconeStarter: miễn phí / 2GB~$20 (Builder / 10GB)Theo GB storage
Cloudflare Vectorize5M stored dims (~3.255 vector)~$6 (Paid $5 + ~$0.77 storage)Theo stored-dim + per-queried-dim
pgvector (Supabase)Miễn phí (shared, 500MB DB)~$410 (2XL: 8-core ARM / 32GB RAM)Compute + storage
Chroma Cloud$5 credits~$2 (storage ongoing)Theo usage

¹ Weaviate Flex storage: 1M × 1536 = 1,536M dims × $0.0139/1M dims = ~$21/tháng; cộng $45/tháng gói Flex. Đã xác minh tại weaviate.io/pricing (tháng 5/2026).

² Vectorize: 1,536M stored dims, 10M đầu tiên được miễn phí trong gói Paid, phần còn lại × $0.05/100M = ~$0.77/tháng. Workers Paid base là $5/tháng. Đã xác minh tại developers.cloudflare.com/vectorize/platform/pricing/ (tháng 5/2026).

³ pgvector Supabase: tier 2XL (8-core ARM, 32GB RAM) là compute nhỏ nhất của Supabase đủ RAM để giữ HNSW index 1M × 1536d warm trong cache. Nguồn: Supabase blog, tháng 5/2026.

Qdrant

Qdrant là lựa chọn toàn diện nhất năm 2026 nếu bạn cần hybrid search hoặc tương thích với edge.

Hybrid search đã trưởng thành. Từ v1.11.0, Qdrant tích hợp sẵn Distribution-Based Score Fusion (DBSF) bên cạnh Reciprocal Rank Fusion (RRF) cũ. Hầu hết các database khác khi nói “hybrid search” chỉ dừng ở RRF — hoặc đẩy fusion hoàn toàn về application layer. DBSF vượt trội hơn RRF trên các tập dữ liệu có phân phối điểm số dense và sparse khác nhau đáng kể (đây là hầu hết workload retrieval thực tế, không phải synthetic benchmark). Bạn cấu hình khai báo thông qua query API:

const result = await client.query('collection-name', {
  prefetch: [
    { query: sparseVector, using: 'sparse', limit: 20 },
    { query: denseVector, using: 'dense', limit: 20 },
  ],
  query: { fusion: 'dbsf' },
  limit: 10,
});

Không cần logic fusion bên ngoài. Không cần thêm round-trip.

JS SDK chạy được trên Workers. @qdrant/js-client-rest chỉ dùng REST transport — không gRPC, không @grpc/grpc-js, không Node.js http2 binding. Nó hoạt động trên Cloudflare Workers, Deno Deploy, và trình duyệt. Demo tích hợp Workers nằm tại github.com/elithrar/qdrant-workers-demo. Đây là điểm khác biệt thực sự: cùng một pattern ứng dụng chạy ở local có thể deploy lên edge mà không cần proxy hay adapter.

Free tier (0.5 vCPU, 1GB RAM, 4GB disk, không cần thẻ tín dụng) đủ để test API và xây proof of concept. Nó không chứa được 1M × 1536d vector — bạn cần node trả phí cho quy mô production, bắt đầu từ ~$25–40/tháng với cấu hình 1 vCPU / 4GB.

Qdrant Hybrid Cloud nhắm vào Kubernetes self-hosted và hỗ trợ 17 nền tảng K8s đặt tên sẵn. Nếu đi theo hướng này, hãy chuẩn bị cho gánh nặng vận hành K8s — Hybrid Cloud không phải serverless.

Weaviate

Con số nổi bật từ benchmark ANN do Weaviate công bố: 5,639 QPS ở 97.24% Recall@10, độ trễ trung bình 2.80ms, P99 4.43ms. Đó là trên GCP n4-highmem-16 (16 vCPU, 128GB RAM) với tập dữ liệu DBPedia ada002 (1M vector, 1536 dims).

Lưu ý bắt buộc: đây là số liệu do vendor tự đo, không được tái hiện độc lập. Phần cứng được dùng (tương đương GCP compute hơn $1,200/tháng) đắt hơn hầu hết các gói Weaviate Cloud. Nếu bảng benchmark của team bạn cần con số QPS và team sẽ tự chạy test trên workload thực của mình, benchmark Weaviate là con số trần định hướng hợp lý — không phải baseline để lập kế hoạch.

Điều nó xác nhận: HNSW implementation của Weaviate xử lý tốt write throughput và concurrent query khi bộ nhớ dồi dào. Nếu bạn vận hành ở quy mô lớn với ngân sách cho gói Premium ($400/tháng, SLA 99.95%) trở lên, dư địa throughput là có thực.

Pricing trên Weaviate Cloud tính theo dimension mỗi tháng. Gói Flex là $45/tháng (SLA 99.5%) với storage $0.0139/1M dims — với 1M × 1536d, storage khoảng ~$21/tháng trước phí gói, tổng ~$66/tháng. Scale lên 10M vector thì riêng tiền storage đã đạt ~$213/tháng. Mô hình theo dimension dễ dự đoán nhưng có thể gây bất ngờ ở quy mô 10M+ vector.

TypeScript v3 client cần Node.js. Nó phụ thuộc vào @grpc/grpc-js, vốn bind vào http2 implementation của Node. Workers, Deno, và browser không được hỗ trợ. GitHub issue #145 vẫn mở và chưa được giải quyết tính đến tháng 5/2026. Nếu runtime của bạn không phải Node, bạn phải dùng REST-only v2 API với feature surface nhỏ hơn.

Pinecone

Định hướng sản phẩm của Pinecone là đơn giản hóa quản lý. Không cần quyết định hạ tầng, không cần cấu hình replication, không cần chọn pod size. Bạn tạo serverless index, upsert vector, query. API surface cố tình được thu hẹp — đó là thiết kế, không phải thiếu sót.

Các gói giá:

  • Starter: miễn phí, giới hạn 2GB storage — đủ cho demo và prototype nhỏ
  • Builder: $20/tháng, 10GB — đủ cho 1M × 1536d (~6GB) và còn dư
  • Standard: $50/tháng + $0.33/GB overage
  • Enterprise: $500/tháng + $0.33/GB

Với 1M vector × 1536 dims (~6GB), Builder là tier phù hợp ở $20/tháng. Standard hợp lý khi bạn vượt 15GB.

Hybrid search (dense + sparse) đã GA trên tất cả các gói — từ Starter đến Enterprise. Các loại index Dense, Sparse, và Full-Text được liệt kê là available trên pinecone.io/pricing mà không có nhãn preview tính đến tháng 5/2026. Qdrant vẫn có implementation fusion tinh vi hơn (DBSF + RRF, có thể cấu hình theo từng query); sparse index của Pinecone hỗ trợ hybrid retrieval dense+sparse chuẩn nhưng không cho phép kiểm soát fusion algorithm.

Lưu ý về affiliate link: hiện toolchew chưa có tracking slug cho Pinecone. Link trực tiếp: pinecone.io/pricing.

Cloudflare Vectorize

Vectorize đạt GA vào tháng 9/2024. Hoàn toàn serverless — không node, không pod, không cần provisioning index. Bạn định nghĩa index trong wrangler.toml, bind vào Worker, và query bằng một dòng:

const results = await env.MY_VECTORIZE_INDEX.query(queryVector, { topK: 10 });

Không có HTTP request ra ngoài. Query chạy trong cùng Cloudflare edge datacenter với Worker của bạn. Lợi thế về độ trễ nhờ co-location là có thực với pipeline nhạy cảm về latency — một round-trip đến vector DB bên ngoài ở edge cộng thêm 20–80ms; Vectorize query thêm gần bằng 0ms. Để hiểu rõ hơn về trade-off của các edge database và vị trí của Vectorize trong stack Cloudflare Workers, xem Edge database tradeoffs: when latency is a lie.

Pricing trên Workers Paid ($5/tháng): 10M stored dims đầu tiên được miễn phí, sau đó $0.05 per 100M; 50M queried dims/tháng đầu tiên miễn phí, sau đó $0.01 per 1M. Với 1M vector × 1536 dims: ~$0.77/tháng cho storage. Đây là lựa chọn rẻ nhất trong bài so sánh này ở quy mô đó.

Free tier là 5M stored vector dimensions, tức ~3,255 vector ở 1536 dims. Đủ cho demo, không đủ cho production.

Điểm yếu: không có hybrid search tích hợp. Chỉ có dense vector search. Để thêm sparse + dense cần một keyword index song song (Workers KV hoặc Postgres qua Hyperdrive) và fusion ở application layer — gánh nặng implementation mà Qdrant và Weaviate đã xử lý sẵn. Nếu chất lượng retrieval phụ thuộc vào hybrid search, Vectorize chưa đủ dùng độc lập.

pgvector

pgvector là câu trả lời đúng khi vector search không phải tính năng chính và bạn không muốn thêm vào rồi vận hành thêm một hệ thống riêng biệt.

Nếu bạn đã trên Neon, Supabase, hoặc RDS, bật extension chỉ cần một dòng:

CREATE EXTENSION IF NOT EXISTS vector;

Nếu bạn chưa chọn Postgres host, Neon vs Supabase so sánh chi phí, cold-start, và trải nghiệm developer giữa hai lựa chọn serverless phổ biến nhất.

Chi phí của Supabase 2XL instance (8-core ARM, 32GB RAM) đủ để index 1M × 1536d vector trong RAM là ~$410/tháng. Nghe có vẻ đắt cho đến khi bạn nhận ra bạn sẽ chạy Postgres instance ở quy mô này anyway — khả năng vector là một tính năng của compute bạn đã trả tiền, không phải một khoản phí mới.

Hai lưu ý production quan trọng:

Lỗi query planner. Một vấn đề đã được ghi nhận trong cost model khiến query planner đôi khi ưu tiên sequential scan hơn HNSW index trong một số filtered workload (pgvector GitHub issues). Workaround phổ biến — SET enable_seqscan = off trên các query path bị ảnh hưởng — hoạt động được, nhưng đòi hỏi bạn chủ động theo dõi output EXPLAIN ANALYZE. Đây không phải lý do để tránh pgvector; đây là lý do để có observability trên query plan của bạn.

RAM là giới hạn trên. HNSW index của pgvector thường trú trong bộ nhớ. Với 1M × 1536d bạn cần 32GB RAM để giữ index warm trong cache. Hỗ trợ iterative index scan từ phiên bản 0.8.0 (CHANGELOG) giúp cải thiện cold-start latency nhưng không loại bỏ yêu cầu RAM. Nếu bạn đang chọn compute xung quanh vector index, đây là yếu tố chi phí mà các dedicated vector database có HNSW on-disk (Qdrant, Weaviate) không đặt ra theo cách tương tự.

Giai đoạn trước product-market fit và tool nội bộ: dùng pgvector. Khi search quality trở thành điểm khác biệt hướng đến người dùng, migration sang dedicated vector DB là lộ trình đã được kiểm chứng trong production.

Chroma

Chroma là lựa chọn ưu tiên prototype. API client giống nhau hoàn toàn dù bạn đang gọi in-memory instance khi test, local server, hay Chroma Cloud. Sự nhất quán API này có nghĩa là code client không cần thay đổi khi bạn chuyển từ laptop lên cloud.

Pricing của Chroma Cloud theo usage: $2.50/GiB để write data, $0.33/GiB/tháng cho storage, $0.0075/TiB queried. Với 1M × 1536d (~6GB): chi phí write ban đầu ~$15 một lần; storage ongoing ~$2/tháng. Đây là lựa chọn cloud rẻ nhất trong bài so sánh này ở quy mô vector đó.

Hybrid search không tích hợp sẵn. Gói Team ($250/tháng + usage) cộng thêm SLA và giới hạn cao hơn. Cho prototype và tool nội bộ với corpus vector vừa phải, Chroma là lựa chọn hợp lý. Với production RAG ở quy mô lớn, hầu hết team chuyển sang hệ thống chuyên dụng trước khi giá cả trở thành vấn đề.

Phiên bản hiện tại: kiểm tra tại github.com/chroma-core/chroma — trang pricing không hiển thị số phiên bản.

Kết luận

Trường hợp dùngChọnLý do
Edge + Workers deploymentQdrantClient duy nhất tương thích Workers cho production (REST, không Node.js)
Không cần hạ tầng, đã trên WorkersCloudflare Vectorize~$0.77/tháng storage tại 1M vector; native Workers binding
API surface nhỏ nhất, managedPineconeServerless index model rõ ràng; ~$20/tháng tại 1M × 1536d
Ưu tiên benchmark throughputWeaviateQPS cao nhất được công bố — do vendor đo, cần ghi rõ
Postgres-native, search là phụpgvectorKhông thêm dependency; HNSW thường trú trong RAM có giới hạn
Prototype local → cloudChromaCùng một client ở mọi nơi; ~$2/tháng storage ongoing
Hybrid search, productionQdrantDBSF + RRF fusion, GA từ v1.11.0; Pinecone cũng có GA sparse index nhưng không kiểm soát được fusion algorithm

Nếu hybrid search là yêu cầu ngay từ đầu và việc kiểm soát fusion algorithm quan trọng, Qdrant là lựa chọn production hoàn chỉnh nhất. Sparse index của Pinecone đã GA và đáp ứng trường hợp dense+sparse chuẩn nếu bạn thích managed model của họ. Nếu bạn đã trên Workers và chỉ cần dense search, Vectorize là con đường rẻ nhất với ít nợ hạ tầng nhất.

Lưu ý quan trọng

Benchmark của Weaviate (5,639 QPS) do vendor tự đo, test trên GCP n4-highmem-16 với corpus DBPedia ada002. Kết quả trên phần cứng, hình dạng document, và query mix của bạn sẽ khác. Đừng dùng con số này làm baseline lập kế hoạch mà không chạy test riêng.

Chi phí pgvector lấy từ bài so sánh của Supabase (tháng 5/2026) cho tier Supabase 2XL. Neon tính tiền theo cách khác (compute-seconds + storage) và có thể rẻ hơn cho workload bursty — xác minh tại neon.com/pricing.

Pricing Pinecone đã xác minh tại pinecone.io/pricing (tháng 5/2026). Quan hệ affiliate đang chờ xử lý — link trong bài này là trực tiếp, không có tracking.

Pricing Cloudflare Vectorize đã xác minh tại developers.cloudflare.com/vectorize/platform/pricing/ (tháng 5/2026).

Phiên bản Chroma hiện tại chưa được xác nhận tại thời điểm viết bài — kiểm tra tại github.com/chroma-core/chroma.

Dữ liệu về Milvus / Zilliz Cloud không có đủ độ tin cậy để đưa vào — không có pricing và feature data đã xác minh cho Milvus 2.4+ trong đợt nghiên cứu này.

Tài liệu tham khảo