Supabase S3 Vector Buckets vs. Postgres Indexes: A Deep Dive
Back to Blog

Supabase S3 Vector Buckets vs. Postgres Indexes: A Deep Dive

Supabase recently released a public alpha of their S3-compatible Vector Buckets, a new way to store and query vector embeddings at scale. These vectors are particularly useful for semantic search and RAG with (LLMs, where finding relevant embeddings quickly is critical. Unlike traditional approaches that rely on Postgres-native indexing, such as HNSW or IVFFlat, Vector Buckets offload storage and some computation to an external, S3-style layer. This makes them highly scalable and cost-efficient, especially for applications dealing with millions or billions of vectors.

Below is a detailed comparison of how Supabase Vector Buckets stack up against HNSW and IVFFlat indexes in PostgreSQL:

Dimension Supabase Vector Buckets HNSW IVFFlat
Type Managed vector storage Graph-based ANN index Cluster-based ANN index
Where it runs External (S3-style storage layer) Inside Postgres Inside Postgres
Query speed ⭐ Higher
(~300–500 ms)
⭐⭐⭐ Very low
(~20–50 ms)
⭐⭐ Low
(~40–100 ms)
Accuracy (recall) ⭐⭐ Good
(~90–95%)
⭐⭐⭐ Very high
(~98–99%)
⭐⭐ Medium
(~85–95%)
Scalability ⭐⭐⭐ Massive
(millions–billions)
⭐ Limited by memory
(Up to tens of millions)
⭐⭐ Large
(Up to hundreds of millions)
Throughput ⭐⭐⭐ High
(1,000–10,000+ QPS)
⭐ DB-limited
(100–1,500 QPS)
⭐⭐ DB-limited
(200–2,000 QPS)
Incremental updates ⭐⭐⭐ Easy ⭐ Costly
(graph rebuild needed)
⭐⭐ Easier
(add to clusters/probes)
Control over algorithm ⭐ None (abstracted) ⭐⭐⭐ Full control ⭐⭐ Partial control
Tuning knobs ⭐ None ⭐⭐⭐ Many
(ef, M, etc.)
⭐⭐ Some
(probes, lists)
Index build time ⭐⭐⭐ Managed
(seconds–minutes/10M vectors)
⭐ Slow
(minutes–hours/10M vectors)
⭐⭐ Faster
(minutes/10M vectors)
Memory usage ⭐⭐⭐ Low
(index offloaded)
⭐ High
(~50–200 bytes/vector)
⭐⭐ Medium
(~10–50 bytes/vector)
Storage cost ⭐⭐⭐ Cheap
(~$0.02–0.05/GB)
⭐ Expensive
(~$0.10–0.20/GB)
⭐⭐ Moderate
(~$0.05–0.10/GB)
Metadata filtering ⭐⭐⭐ Supported ⭐⭐⭐ Supported ⭐⭐⭐ Supported
Query interface SDK / API (queryVectors) SQL (ORDER BY <->) SQL + tuning params
Best for Massive, scalable vector storage Real-time, high-accuracy search Balanced performance at scale