Infino vs Postgres / ClickHouse

Postgres can combine native text search, pgvector, and a BM25 extension, but takes manual work to scale. ClickHouse combines fast token filtering, vector search, and analytical SQL but does not have native BM25. Infino is optimized for BM25, vector search, rank fusion, and SQL over the same Parquet rows.

postgres / ch postgres · mergetree OBJECT STORAGE docs.sf.parquet
diff --stat postgres clickhouse infino

Retrieval beside OLTP and analytics

Infino fits the retrieval path: BM25, vector search, rank fusion, and selected SQL over one Parquet copy. Postgres remains optimized for OLTP; ClickHouse and warehouse engines remain optimized for broad scans and large aggregations.

  • Postgres hybrid retrieval combines tsvector / ts_rank, pgvector, and a separate BM25 extension. The database carries the text index, vector index, and application workload together; standard Postgres has no native horizontal sharding when that node fills.
  • ClickHouse provides a native text index for token filtering plus HNSW, QBit, and brute-force vector search. Its text path matches tokens without BM25 relevance scoring.
  • Infino runs BM25 and vector search in one query, fuses the ranks with RRF, then applies JOIN and GROUP BY to the result. This path targets retrieval-shaped SQL over a bounded candidate set.
cat ARCHITECTURE.diff

Where the data lives

Postgres and ClickHouse keep their own tables. Infino searches the Parquet already in your bucket.

POSTGRES / CLICKHOUSE INFINO postgres Postgres tables · block storage clickhouse MergeTree · block or object their own tables and indexes INFINO search as table functions hybrid_search · SQL your bucket standard Parquet · columns stay readable

architecture →

infino diff --features

Retrieval and database capabilities

capability postgres clickhouse infino
sql full Postgres SQL full SQL, ClickHouse dialect DataFusion; search as table functions
transactions OLTP, row-level ACID analytical database snapshot commits for retrieval tables
large scans optimized for transactional access columnar scans and aggregations retrieval SQL over bounded candidates
keyword search tsvector / ts_rank; BM25 extension available native token-filtering index BM25 in the engine
vector search exact, HNSW, IVFFlat HNSW, QBit, brute force HNSW when pinned in RAM; OPANN + Sq16 on object storage
hybrid ranking combine text and vector ranks yourself combine text filters and vector ranks yourself RRF in one query, one pass
data format Postgres tables MergeTree; also reads and writes Parquet standard Parquet
where data lives block storage on the Postgres you run block or object, through ClickHouse your bucket, searched in place
runs as single primary; standby / read replicas a cluster, or ClickHouse Cloud embedded library or managed service
platform ecosystem transactions, extensions, application tooling analytical SQL, BI, and platform tooling retrieval SQL and open Parquet interoperability
license PostgreSQL license Apache-2.0 Apache-2.0 engine

elasticsearch / opensearch · qdrant / pinecone · postgres / clickhouse · snowflake / databricks · iceberg / hudi

infino bench --sql

Measured SQL latency

Infino warm p50 over 10M rows, reported as four named query shapes with explicit workload definitions.

Workload 10M rows · warm p50 · bounded results
metadata aggregate 0.3ms
lookup aggregate 3ms
scan aggregate 41ms
crosstab aggregate 75ms

External benchmark reference for SQL engines: ClickBench (different query suite) →

infino cost --compare sql

What the calculator prices

The calculator opens in SQL mode, which compares columns-only deployments. Switch to Hybrid to add the retrieval state each option needs: vectors and HNSW for Postgres, Elastic plus Qdrant around ClickHouse, and the managed search products on Snowflake and Databricks.

storage $0.30 per GB-month i Stored documents follow monthly writes, since a month of ingest has to land somewhere. Shorter retention lowers both. methodology →
1B docs · tracks writes 1 TB billed
$300
write tokens $0.15 per 1k WT i Write tokens measure ingest work. Batched writes assumed. methodology →
10M docs written · 3.8 WPS avg 0.013 WT each · 10 GB · 128K WT
$19
read tokens $0.05 per 1k RT i Read tokens measure query work. Pinned tables assumed at higher volumes. methodology →
10M queries · 3.8 QPS avg 13.7 RT each · 137.25M RT · pinned
$1,183
returned bytes $0.05 per GB returned
10 docs returned per query 100 GB returned
$5
infino $1,507/month account minimum
ClickHouse $1,373

ClickHouse Cloud · Scale

SQL compute3 × HA units · 4 vCPU · 32 RT/s/vCPU$1,311
Keeper + control planeincluded in managed Cloud$0
storage + backup1 TB logical · $25.30/TB-mo$51
egress100 GB · $0.1152/GB$12
total$1,373
methodology →
1.1× cheaper
Snowflake $2,943

Snowflake · Standard

warehouse compute12 vCPU required · Small (16 vCPU) · 2 credit/hr · 13 RT/s/vCPU · always-on$2,920
table storage1 TB logical · $23.00/TB-mo On Demand$23
internet egress100 GB of query results · not charged$0
total$2,943
methodology →
2.0× more
Databricks $2,068

Databricks SQL · Serverless

SQL warehouse16 vCPU required · 2X-Small (16 vCPU) · 4 DBU/hr · 8 RT/s/vCPU · always-on$2,044
object storage1 TB · S3 $0.023/GB-mo$23
Zerobus ingest10 GB written · $0.050/GB$1
total$2,068
methodology →
1.4× more

Postgres omitted at this scale i One RDS node cannot satisfy the RAM, vCPU, or storage requirement. Standard PostgreSQL does not shard horizontally. methodology →

Pinecone omitted at this scale i No published Dedicated Read Nodes configuration covers this working set (largest published example is 1.4 billion vectors), and on-demand exceeds the 2,000 RU/s index limit. methodology →

Infino Cloud Pricing. methodology →

cat TRADEOFFS.md

Workload boundaries

Infino is optimized for retrieval and SQL over bounded candidate sets. Postgres supplies transaction semantics; ClickHouse and warehouse platforms supply broader analytical ecosystems.

  • Postgres remains the stronger fit for heavily transactional applications and row-level consistency.
  • SQL runs on DataFusion and is designed to filter, join, and aggregate retrieval results.
  • Broad scans and large aggregations will often remain more efficient on ClickHouse, Snowflake, or Databricks because there is less for Infino’s indexes to prune.
  • Postgres can keep retrieval inside the application database, but text, vector, and application workloads then scale together on one primary. Read replicas do not shard the corpus.

vs qdrant / pinecone →

infino migrate --from postgres

How migration works

Migration can be limited to retrieval and the SQL directly on top of it. Transactions can remain in Postgres, and broad analytical workloads can remain in ClickHouse.

  • Export the columns, the text you rank, and the embeddings.
  • Append into Infino over REST, Arrow or JSON. Indexing happens on write.
  • Rewrite the fused query as hybrid_search (or bm25_search / vector_search) inside SQL. Dual-run, then cut those reads over.

Talk through the migration →

cat FAQ.md

Postgres and ClickHouse questions

Does Infino replace Postgres or ClickHouse?

Infino can replace retrieval workloads built on Postgres or ClickHouse: keyword, vector, hybrid ranking, and selected SQL over the same Parquet files. Postgres remains the stronger fit for OLTP and row-level transactions. ClickHouse or a warehouse will often remain the stronger fit for broad scans and large aggregations.

What is the main difference?

Postgres pairs tsvector and ts_rank with pgvector; BM25 requires a separate extension. ClickHouse provides token filtering and several vector-search paths, with text matching rather than BM25 relevance. Infino includes BM25 and vector search, fuses their ranks with RRF, and exposes the result to SQL.

How much does Infino reduce hybrid retrieval and SQL cost?

The result depends on corpus size, query mix, traffic, and availability requirements. SQL mode compares the selected workload across Infino, Postgres, ClickHouse, Snowflake, and Databricks. Hybrid mode also models the retrieval indexes or services each option needs. Standard Postgres is omitted when the workload no longer fits one RDS PostgreSQL node; the methodology page documents the sizing rules.

Does Infino replace Snowflake, Databricks, or DuckDB?

It can replace the read path for search, hybrid search, and selected SQL. Snowflake and Databricks retain their broader data-platform ecosystem, while DuckDB remains a strong fit for local analytical work.

Why would I use Postgres or ClickHouse instead?

Postgres provides OLTP and row-level transactions. ClickHouse is designed for large columnar scans and aggregations. Infino’s SQL path is optimized for retrieval and SQL over a bounded candidate set; the best fit depends on the workload.

Can I use Postgres or ClickHouse for agent retrieval?

Postgres can combine native text search, pgvector, and a separate BM25 extension, with each index and rank-fusion step configured separately. ClickHouse combines token filtering with vector search. Infino supplies BM25, vector search, and RRF as one search relation inside SQL.

How do I migrate from Postgres or ClickHouse?

A migration can be limited to the retrieval path: export the columns, embeddings, and text it needs, append them into Infino, and dual-run representative queries before routing those reads differently. Existing transactional and analytical workloads remain in place.