Why QuestDB?

This pages provides a brief overview on:


Just want to build? Jump to the quick start guide.


Top QuestDB features

QuestDB is applied within cutting edge use cases around the world.

Developers are most enthusiastic about the following key features:

Massive ingestion handling & throughput

If you are running into throughput bottlenecks using an existing storage engine or time series database, QuestDB can help.

High performance deduplication & out-of-order indexing

High data cardinality will not lead to performance degradation.

Hardware efficiency

Strong, cost-saving performance on very mninimal hardware, including sensors and Raspberry Pi.

SQL with time series extensions

Fast, SIMD-optimized SQL extensions to cruise through querying and analysis.

No obscure domain-specific languages required.

Greatest hits include:

  • SAMPLE BY summarizes data into chunks based on a specified time interval, from a year to a microsecond
  • WHERE IN to compress time ranges into concise intervals
  • LATEST ON for latest values within multiple series within a table
  • ASOF JOIN to associate timestamps between a series based on proximity; no extra indices required

Benefits of QuestDB

To avoid ingestion bottlenecks, high performance data ingestion is essential.

But performance is only part of the story.

Efficiency measures how well a database performs relative to its available resources.

QuestDB, on maximal hardware, significantly outperforms peers:

A chart showing high-cardinality ingestion performance of InfluxDB, TimescaleDB, and QuestDB
Benchmark results for QuestDB 7.3.10, InfluxDB 2.7.4 and Timescale 2.14.2

However, on less robust hardware the difference is even more pronounced, as seen in the following benchmark.

Even on hardware as light as a Raspberry Pi 5, QuestDB outperforms competitors on stronger hardware:

A chart showing high-cardinality ingestion performance of InfluxDB, TimescaleDB, and QuestDB
QuestDB on an RPi5 outperforming competitors on optimal hardware

Beyond performance and efficiency, with a specialized time-series database, you don't need to worry about:

  • out-of-order data
  • duplicates
  • exactly one semantics
  • frequency of ingestion
  • many other details you will find in demanding real-world scenarios

QuestDB provides simplified, hyper-fast data ingestion with tremendous efficiency and therefore value.

Write blazing-fast queries and create real-time Grafana via familiar SQL:

Navigate time with SQLDemo 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;

Intrigued? The best way to see whether QuestDB is right for you is to try it out.

Click Demo this query in the snippet above to visit our demo instance and experiment.

To bring your own data and learn more, keep reading!

Where to next?

You'll be inserting data and generating valuable queries in little time.

First, the quick start guide will get you running.

Choose from one of our premium ingest-only language clients:

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

From there, you can learn more about what's to offer.

Support

We are happy to help with any question you may have.

The team loves a good performance optimization challenge!

Feel free to reach out using the following channels: