Why QuestDB?

QuestDB is a high-performance time-series database built for speed and efficiency.

Ready to try it? Jump to the quick start.

When to use QuestDB

QuestDB is designed for workloads where:

  • You're ingesting time-stamped data continuously — sensor readings, financial ticks, application metrics, logs, events
  • You need fast aggregations over time — dashboards, real-time analytics, OHLC charts, downsampling
  • You want SQL, not a new query language — standard SQL with time-series extensions
  • Hardware efficiency matters — get more from less infrastructure

Common use cases

DomainExamples
Financial servicesMarket data, tick-by-tick analysis, risk calculations
Space explorationTelemetry processing, satellite monitoring, mission analytics
EnergyGrid monitoring, smart meter data, renewable output tracking

What makes QuestDB fast

Ingestion performance

QuestDB ingests millions of rows per second on commodity hardware.

A chart showing high-cardinality ingestion performance of InfluxDB, TimescaleDB, and QuestDB
Results for QuestDB 9.1.0, Timescale 2.22.1, InfluxDB 2.7.12, and Clickhouse 25.10.1.1486

On a Raspberry Pi 5, QuestDB ingests ~270,000 rows per second.

Built-in handling for real-world data

Time-series data is messy. QuestDB handles it automatically:

  • Out-of-order data — late-arriving records are merged efficiently
  • Deduplication — duplicates are detected and handled at ingestion
  • High cardinality — millions of unique series without performance degradation

SQL with time-series extensions

No proprietary query language. Use SQL you already know, extended for time-series:

OHLC aggregation with SAMPLE BYDemo this query
SELECT
timestamp, symbol,
first(price) AS open,
last(price) AS close,
min(price),
max(price),
sum(amount) AS volume
FROM trades
WHERE timestamp > dateadd('d', -1, now())
SAMPLE BY 15m;

Key extensions:

  • SAMPLE BY — aggregate by time buckets (1 minute, 1 hour, 1 day, etc.)
  • LATEST ON — get the most recent value per series
  • ASOF JOIN — join time-series by closest timestamp
  • Materialized Views — pre-compute aggregations automatically

When QuestDB might not be the right fit

QuestDB is optimized for time-series. Consider alternatives if:

  • You need general-purpose OLTP — frequent updates, deletes, complex transactions → PostgreSQL
  • Your data isn't time-series — no timestamp column, no time-based queries → traditional RDBMS
  • You need full-text search — log text searching → Elasticsearch or Loki

Get started

The quick start gets you running in minutes.

Choose a client library to start ingesting:

C & C++

High-performance client for systems programming and embedded applications.

Read more

C & C++ logo

.NET

Cross-platform client for building applications with .NET technologies.

Read more

.NET logo

Go

An open-source programming language supported by Google with built-in concurrency.

Read more

Go logo

Java

Platform-independent client for enterprise applications and Android development.

Read more

Java logo

Node.js

Node.js® is an open-source, cross-platform JavaScript runtime environment.

Read more

Node.js logo

Python

Python is a programming language that lets you work quickly and integrate systems more effectively.

Read more

Python logo

Rust

Systems programming language focused on safety, speed, and concurrency.

Read more

Rust logo

Or explore more:

Support

We're happy to help: