PlanetScale has announced TIN (Text INdex), a general-release full-text search extension designed for Postgres databases. According to the announcement, TIN was created to address a common customer need for a text index that supports advanced search capabilities—including Boolean expressions, phrase queries, fuzzy and wildcard matching, regular expressions, case and accent folding, COUNT(*) queries, and BM25-scored top-k results—while reliably handling demanding workloads involving joins, complex WHERE clauses, continuous updates, replication, backups, and transaction visibility. The extension is available immediately for both standard Postgres and PlanetScale's Neki databases.

This image shows the promotional material for PlanetScale's TIN extension, which is the subject of the article announcing its release and performance benefits.
Performance benchmarks demonstrate TIN's significant advantages over existing Postgres text-search solutions. In mixed workload tests (combining conjunction, disjunction, and phrase queries) with top-10 ranked results, TIN processed 199 queries per second with 256ms p99 latency, outperforming ParadeDB's 7.9 QPS and 6,765ms p99 latency by 25× in throughput and 26× in latency. For conjunction and phrase queries alone, TIN achieved 242 QPS with 212ms p99 latency, which is 10× faster than ParadeDB and 541× faster than Postgres' built-in GIN index. TIN attributes this performance to its architectural choice of using Postgres' ctid (current tuple identifier) values as document identifiers, enabling highly vectorized intersection and union operations on modern CPUs rather than relying on sequential document numbering that complicates segment merging.

The article compares TIN's performance against ParadeDB; this image illustrates ParadeDB's full-text search offering.
While TIN delivers exceptional query performance, the benchmark results highlight a trade-off in storage requirements. Index sizes for TIN ranged from 33% to 61% of the original corpus size across tested workloads, meaning that deploying TIN necessitates allocating substantial disk space—often exceeding half the size of the indexed data—to achieve its performance gains. This storage overhead is a notable consideration for environments with large corpora or limited storage capacity, even as it enables TIN to maintain low latency and high throughput under concurrent write workloads, as demonstrated by its ability to process over 270,000 updates during a ten-minute test while sustaining 125 QPS for disjunction queries with top-10 ranking.