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 |