{"slug": "pg-vectorsearch-vs-pgvector-the-42-hour-vector-index-just-became-a-100-minute", "title": "pg_vectorsearch vs pgvector: The 42-Hour Vector Index Just Became a 100-Minute One", "summary": "Tiger Data released pg_vectorsearch, an open-source PostgreSQL extension under the PostgreSQL license that adds a new index access method called PRISM (Partitioned Routing Index for Similarity Matching). In vendor-reported benchmarks on 100 million Cohere embeddings, PRISM built its index in 1 hour 40 minutes and occupied 25 GB, versus 42 hours and roughly 180 GB for pgvector's HNSW on a machine 4x more expensive. The extension shipped as an alpha, and independent writeups noted the benchmarks omit embedding dimensionality, throughput figures, and any comparison against IVFFlat.", "body_md": "If you have ever kicked off a pgvector HNSW index build on a large embedding table and watched the hours tick by, the announcement Tiger Data made on October 13 reads like a targeted attack on your pain. Their new open-source extension, pg_vectorsearch, introduces an index called PRISM. On the same 128 GiB machine where a pgvector HNSW build over 100 million embeddings never finished at all, PRISM finished in 1 hour 40 minutes. On a machine 4x more expensive, HNSW needed 42 hours to do what PRISM did in 100 minutes.\n\nThat is the headline. The useful question is what sits underneath it, because \"should I switch my vector index\" is a decision with real migration cost, and the answer in October 2026 is more conditional than the launch post makes it sound. Here is the breakdown: what PRISM actually is, what the numbers do and do not prove, and a checklist for deciding whether your workload should touch it yet.\n\nOne disclosure up front: pg_vectorsearch shipped as an alpha one day before this article, so nobody outside Tiger Data has production experience with it, including me. Everything below comes from Tiger Data's announcement, their public benchmark tooling, and independent writeups. I will mark clearly which numbers are vendor-reported.\n\nTiger Data, the company behind TimescaleDB, released pg_vectorsearch as an open-source PostgreSQL extension under the PostgreSQL license. It adds a new index access method called PRISM, short for Partitioned Routing Index for Similarity Matching. Three facts matter more than the name:\n\n`vector` or `halfvec` types can get a PRISM index, and Tiger Data says your pgvector queries run unchanged.\nThe positioning detail that got less attention: Tiger Data describes pg_vectorsearch as the successor to pgvectorscale, their earlier DiskANN-based extension, which is heading into maintenance mode. If you adopted pgvectorscale last year on the strength of its Pinecone-comparison benchmarks, the roadmap just moved under you. That is worth knowing before your next infrastructure planning cycle.\n\nHNSW, the index inside pgvector that most teams use, builds a multi-layer graph. Every vector is a node, and a search hops from node to node, narrowing down toward the nearest neighbors. The problem at scale is not compute. It is memory. Graph hops are unpredictable in advance, so the CPU spends most of its time stalled waiting on RAM, and the index itself has to stay resident. For 100 million vectors, Tiger Data measured the HNSW index at roughly 180 GB.\n\nPRISM takes the older IVF idea and hardens it. It groups similar vectors into k-means partitions, then stores each partition as compressed RaBitQ codes at roughly one bit per dimension, packed into whole database pages. A query finds the nearest few partitions and scans them sequentially. Sequential scans keep the CPU prefetcher busy and let SIMD instructions score many compressed vectors per instruction. Instead of a random-access graph walk, you get streaming passes over tightly packed pages.\n\nThe result shows up in the storage number: 25 GB for the PRISM index versus 180 GB for HNSW on the same 100 million vectors. A 7x smaller index is what buys the cheap build and the small-machine query performance.\n\nAll figures below are from Tiger Data's launch benchmarks on 100 million Cohere embeddings, measured with their public benchmark tool, rekall, at recall@10 against exact brute-force results. They are vendor-reported, and every HNSW comparison used pgvector's `halfvec` type.\n\nIndependent writeups of the announcement flagged the gaps fairly: the post does not state the embedding dimensionality of the test set, gives no throughput numbers, and contains no direct comparison against IVFFlat. Multi-client throughput testing is listed as still pending. None of that makes the numbers wrong, but it means the comparison you actually care about, PRISM versus whatever your workload does today on your hardware, does not exist yet. Run the rekall tool on your own data before believing any of this for your case.\n\nTiger Data is unusually blunt about the state of the release, and the release notes deserve to be quoted in spirit: alpha quality, meant for testing, not production. Specifically:\n\nThat last cluster of caveats points at the same conclusion: PRISM is for evaluation and read-mostly workloads right now, not for your production embedding table with daily churn.\n\nThe interesting part of this launch is not \"PRISM beats HNSW.\" It is that the threshold where teams felt forced to leave Postgres for a dedicated vector database just moved again. Save this checklist:\n\nStep back from the benchmark and look at the sequence. In 2023, running RAG meant standing up a dedicated vector database. Then pgvector made small-scale vector search a one-line extension install. Then pgvectorscale pushed Postgres into the tens of millions of vectors. Now PRISM is claiming the 100 million range on hardware a fraction of the cost, with no second system to operate, secure, back up, or keep consistent with your relational data.\n\nFor a certain class of workload, the \"we need a vector database\" conversation is ending the same way the \"we need a cache server\" and \"we need a search cluster\" conversations ended for many teams: with a Postgres feature. Every team that chose a dedicated vector DB for scale reasons rather than feature reasons should keep a running estimate of what it would cost to move back, because the answer changes every quarter, and lately it changes in Postgres's favor.\n\nIf I were planning a vector workload today: start every new project on plain pgvector regardless of expected size, because the exit cost from Postgres is low and the entry cost of a dedicated service is permanent. Revisit at the first sign of memory pressure, and at that point evaluate pgvectorscale's StreamingDiskANN for current production needs and PRISM for the 100M+ future, with the understanding that one is production-hardened and the other is a 48-hour-old alpha. And before any switch, generate your own numbers with rekall, because the only benchmark that matters is the one run on your embeddings, your hardware, and your recall target.\n\nI write about databases, AI infrastructure, and backend engineering every week. Subscribe, it is free, and it helps more than you know.\n\nHave you hit the ceiling of HNSW on a real workload? I am curious how long your largest index build took and whether it pushed you to a dedicated vector database or you stayed on Postgres. Tell me in the comments.\n\n**Sources:** Tiger Data's October 13 announcement ([TimescaleDB on X](https://x.com/TimescaleDB/status/2110022266243178599)), the [pgvectorscale repository](https://github.com/timescale/pgvectorscale) for the maintenance-mode note, and independent coverage of the launch benchmarks.", "url": "https://wpnews.pro/news/pg-vectorsearch-vs-pgvector-the-42-hour-vector-index-just-became-a-100-minute", "canonical_source": "https://dev.to/jamilxt/pgvectorsearch-vs-pgvector-the-42-hour-vector-index-just-became-a-100-minute-one-14d3", "published_at": "2026-10-18 19:13:34+00:00", "updated_at": "2026-10-18 19:18:44.908388+00:00", "lang": "en", "topics": ["ai-infrastructure", "ai-tools", "developer-tools", "mlops"], "entities": ["Tiger Data", "pg_vectorsearch", "PRISM", "pgvector", "TimescaleDB", "pgvectorscale", "PostgreSQL", "Cohere"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/pg-vectorsearch-vs-pgvector-the-42-hour-vector-index-just-became-a-100-minute", "markdown": "https://wpnews.pro/news/pg-vectorsearch-vs-pgvector-the-42-hour-vector-index-just-became-a-100-minute.md", "text": "https://wpnews.pro/news/pg-vectorsearch-vs-pgvector-the-42-hour-vector-index-just-became-a-100-minute.txt", "jsonld": "https://wpnews.pro/news/pg-vectorsearch-vs-pgvector-the-42-hour-vector-index-just-became-a-100-minute.jsonld"}}