QuestDB vs. InfluxDB

Looking for peak time-series? Amplify ingestion and query speeds and significantly reduce infrastructure costs and complexity.

Syndica logo

QuestDB outperforms every database we have tested and delivered a 10x improvement in querying speed. It has become a critical piece of our infrastructure.

>Ahmad Abbasi
Co-Founder/CEOSyndica

Simply the fastest time-series database

Enter overdrive

QuestDB significantly outpaces InfluxDB in pure performance. Ingest speeds are 3-10x faster, while more complex queries can see orders of magnitude improvement. Overcome infrastructure bottlenecks and break free from cardinality limits.

Charts and data visualizations...
Brightcom logo

QuestDB's remarkable performance is evident through significantly faster query response times and outstanding real-time data ingestion. Deployment and maintenance of QuestDB proved to be trivial with literally zero production hiccups for over a year now.

>Gil Ditkovski
VP ProductBrightcom

No DSL required. Enjoy simple SQL.

Reduce complexity and accelerate time-to-value.

Downsample data

Aggregate data into one-minute intervals, reduce the granularity and size of the dataset for efficiency.

Flux

from(bucket: "example-bucket")
|> range(start: -1h)
|> filter(fn: (r) =>
r._measurement == "cpu" and
r.cpu == "cpu-total"
)
|> aggregateWindow(every: 1m, fn: mean)

QuestDB

SELECT timestamp,
avg(cpu),
avg(cpu-total)
FROM 'example-bucket'
WHERE timestamp > dateadd('h', -1, now())
SAMPLE BY 1m;

ASOF Joins

Join two tables and get a column from each table where the timestamp matches.

Flux

f1 = from(bucket: "example-bucket-1")
|> range(start: "-1h")
|> filter(fn: (r) => r._field == "f1")
|> drop(columns: "_measurement")
f2 = from(bucket: "example-bucket-2")
|> range(start: "-1h")
|> filter(fn: (r) => r._field == "f2")
|> drop(columns: "_measurement")
union(tables: [f1, f2])
|> pivot(
rowKey: ["_time"],
columnKey: ["_field"],
valueColumn: "_value"
)

QuestDB

SELECT a.timestamp, f1, b.timestamp, f2
FROM 'example-table-1' a
ASOF JOIN 'example-table-2' b;
Copenhagen Atomics logo

QuestDB was our choice for real time data due to high performance, open source, high flexibility and great support. Performance was significantly better than the competition and we believe that QuestDB will become market leading.

>Lasse Tarp
Software Group managerCopenhagen Atomics

Just change a string

Full ILP compatibility

QuestDB supports the InfluxDB Line Protocol (ILP). Apply first-party ILP in QuestDB clients, from Rust to Python. Top performance, useful feedback and clear docs. Upgrade your ingress with a string change.

QuestDB Rust client code, from the basic Rust ingestion example in the QuestDB repository.
Pacific Crane Management Company logo

InfluxDB could not deal with the shape of our data, which includes wide tables with thousands of column. Instead, we could ingest this data flawlessly into QuestDB, and then query it with SQL easily.

>Chandler Jones
Software EngineerPacific Crane Management Company

Ready to upgrade?

Break free from ingestion speed bottlenecks

Spin up in minutes.

Download QuestDB