Pinecone, Weaviate, Qdrant: Comparison
Three production vector DBs compared on hosting model, query speed, filtering, and developer experience.
Pinecone, Weaviate, Qdrant: Comparison is a free AI Agents lesson on CoddyKit — lesson 1 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the AI Agents learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Why Pick a Vector DB?
FAISS and Chroma are great for prototypes but production demands more: persistent storage, replication, metadata indexing, multi-tenancy, auth, monitoring.
Three top managed vector DBs: Pinecone, Weaviate, Qdrant.
Pinecone
Fully managed, serverless, easiest to start:
- + Zero ops, SaaS-only
- + Strong p99 latency guarantees
- + Hybrid search (vector + sparse)
- - Cloud-only, no self-host
- - Pricing per pod or per dimension
Weaviate
Self-host or managed, ML-native features:
- + Built-in vectorisation modules (call OpenAI from inside Weaviate)
- + GraphQL query language
- + Multi-tenancy primitives
- + OSS Apache 2.0
- - More moving parts than Pinecone
Qdrant
OSS-first, written in Rust, very fast:
- + Best-in-class self-hosted performance
- + Strong filtering (rich payload language)
- + Quantization options for memory savings
- + gRPC and REST APIs
- - Smaller ecosystem than Pinecone
Pinecone Code Example
from pinecone import Pinecone
pc = Pinecone(api_key='...')
index = pc.Index('docs')
index.upsert([
('id-1', vec1, {'source': 'a.pdf'}),
('id-2', vec2, {'source': 'b.pdf'})
])
results = index.query(
vector=query_vec,
top_k=5,
filter={'source': 'a.pdf'}
)Weaviate Code Example
import weaviate
client = weaviate.Client('http://localhost:8080')
client.batch.add_data_object(
{'text': '...', 'source': 'a.pdf'},
class_name='Doc',
vector=vec1
)
results = (
client.query.get('Doc', ['text', 'source'])
.with_near_vector({'vector': query_vec})
.with_limit(5)
.do()
)Qdrant Code Example
from qdrant_client import QdrantClient
from qdrant_client.models import PointStruct
client = QdrantClient('http://localhost:6333')
client.upsert(
collection_name='docs',
points=[PointStruct(id=1, vector=vec1, payload={'source': 'a.pdf'})]
)
results = client.search(
collection_name='docs',
query_vector=query_vec,
limit=5
)When to Choose Pinecone
- You want zero ops
- Multi-region replication
- Mature integrations (LangChain, LlamaIndex)
When to Choose Weaviate
- You need hybrid (BM25 + vector) out of the box
- Strict data-residency / on-prem
- You like GraphQL
When to Choose Qdrant
- You self-host and need top performance
- Heavy metadata filtering
- You want the simplest deployment
Don't Forget pgvector
If you already run Postgres, the pgvector extension lets you store vectors alongside relational data:
CREATE EXTENSION vector;
CREATE TABLE docs (id SERIAL PRIMARY KEY, text TEXT, embedding vector(1536));
CREATE INDEX ON docs USING ivfflat (embedding vector_cosine_ops);
SELECT text FROM docs ORDER BY embedding <=> $1 LIMIT 5;Other Options
- Milvus — popular at scale, distributed
- Chroma — local-first, simple
- LanceDB — local, columnar, fast
- Elasticsearch — vectors + classical search in one
- Redis Vector — Redis + vector indexing
Migration Pain
Switching vector DBs after launch is painful — re-embedding millions of docs is expensive and slow. Choose carefully or build an abstraction layer (LangChain VectorStore interface).
Which Is Self-Hosted-First?
Which vector DB is written in Rust and oriented toward self-hosting?
Recap
Pinecone for ease, Weaviate for hybrid + GraphQL, Qdrant for performance, pgvector for "we already have Postgres". Pick early, evaluate honestly.
Frequently asked questions
Is the “Pinecone, Weaviate, Qdrant: Comparison” lesson free?
Yes — the full text of “Pinecone, Weaviate, Qdrant: Comparison” is free to read here on the web, and the AI Agents course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the AI Agents course, upgrade to CoddyKit PRO.
What will I learn in “Pinecone, Weaviate, Qdrant: Comparison”?
Three production vector DBs compared on hosting model, query speed, filtering, and developer experience. You practise AI Agents with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start AI Agents?
No prior experience is required. AI Agents on CoddyKit is structured for beginners through advanced learners; this is — lesson 1 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Pinecone, Weaviate, Qdrant: Comparison” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this AI Agents lesson?
Yes. Every AI Agents lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- Pinecone, Weaviate, Qdrant: Comparison
- Metadata Filtering for Hybrid Search
- Updating and Deleting Vectors
- Choosing Distance Metrics (cosine, L2, dot)