Interested in QuestDB use cases?

Learn more

InfluxDB 3 Core Benchmarks: QuestDB Comparison

This article presents benchmark results for InfluxDB 3 Core compared to QuestDB 9.2.2. InfluxDB 3 Core, which reached general availability in April 2025, is a complete rewrite of InfluxDB using Apache Arrow and DataFusion.

Key results: QuestDB ingests data 12x to 36x faster than InfluxDB 3 Core (up to 11.4M rows/sec vs 320K rows/sec), and runs analytical queries 17x to 418x faster depending on query type. InfluxDB 3 Core shows consistent ~320K rows/sec ingestion regardless of cardinality.

For InfluxDB v1/v2 benchmarks and detailed architecture comparison, see QuestDB vs InfluxDB.

About InfluxDB 3 Core

InfluxDB 3 Core represents a major architectural shift for InfluxDB:

  • Complete rewrite in Rust (previously Go)
  • Apache Arrow for in-memory data representation
  • DataFusion query engine (Apache Arrow's SQL query engine)
  • Parquet for storage format
  • Arrow Flight for query protocol (gRPC-based)

This is a fundamentally different database from InfluxDB v1 and v2. The new architecture aims to improve analytical query performance through columnar processing.

Performance benchmarks

We use the open-source, industry-standard Time Series Benchmark Suite (TSBS) for all benchmarks. We extended the InfluxDB query runner to support v3 via Arrow Flight using the official influxdb3-go client library.

Hardware: AWS EC2 r8a.8xlarge (32 vCPU, 256 GB RAM, AMD EPYC), GP3 EBS storage (20,000 IOPS, 1 GB/s throughput)

Software:

  • Ubuntu 22.04
  • InfluxDB 3 Core (quay.io/influxdb/influxdb3-core:latest as of December 2025)
  • QuestDB 9.2.2

Ingestion benchmark

We test a cpu-only scenario with two days of CPU data for various numbers of simulated hosts (100 to 1M). This tests how each database handles increasing data volumes and cardinality.

Example commands:

$ ./tsbs_generate_data --use-case="cpu-only" --seed=123 --scale=4000 \
--timestamp-start="2016-01-01T00:00:00Z" \
--timestamp-end="2016-01-03T00:00:00Z" \
--log-interval="10s" --format="influx" > /tmp/influx_data
$ ./tsbs_load_influx --db-name=benchmark --file=/tmp/influx_data \
--urls=http://localhost:8181 --workers=32

The results for ingestion with 32 workers:

↑ Higher is better

12-36xfaster than InfluxDB 3 Core
11.36Mrows/sec peak
~320Kconstant throughput
ScaleInfluxDB 3 CoreQuestDBQuestDB Advantage
100 hosts323K rows/sec4.02M rows/sec12x faster
1,000 hosts320K rows/sec7.48M rows/sec23x faster
4,000 hosts320K rows/sec8.39M rows/sec26x faster
100,000 hosts320K rows/sec11.36M rows/sec36x faster
1,000,000 hosts320K rows/sec7.33M rows/sec23x faster

Key observations:

  • InfluxDB 3 Core shows constant ~320K rows/sec regardless of cardinality (100 to 1M hosts)
  • QuestDB scales from 4M to 11.4M rows/sec, peaking at 100K hosts
  • QuestDB is 12x to 36x faster than InfluxDB 3 Core on ingestion

Query performance

We tested standard TSBS query types against both databases. All queries run with a single worker to measure per-query latency.

Dataset: cpu-only scenario, 4,000 hosts, 10-second intervals, 2 days of data (~69M rows)

As part of the standard TSBS benchmark, we test several types of popular time series queries:

  • single-groupby: Aggregate CPU metrics for random hosts over specified time ranges
  • double-groupby: Aggregate across ALL hosts, grouped by host and time intervals
  • high-cpu-all: Full table scan finding hosts with CPU utilization above threshold

To run the benchmark:

$ ./tsbs_generate_queries --use-case="devops" --seed=123 --scale=4000 \
--timestamp-start="2016-01-01T00:00:00Z" \
--timestamp-end="2016-01-03T00:00:00Z" \
--queries=1000 --query-type="single-groupby-1-1-1" \
--format="influx" > /tmp/influx_query
$ ./tsbs_run_queries_influx --file=/tmp/influx_query \
--db-name=benchmark --workers=1

Single-groupby queries

↓ Lower is better

Query format: metrics-hosts-hours

43-418xfaster than InfluxDB 3 Core
~1-2msQuestDB latency
55-740msInfluxDB 3 Core latency
QueryInfluxDB 3 CoreQuestDBComparison
single-groupby-1-1-158.70 ms1.06 msQuestDB 55x faster
single-groupby-1-1-12701.51 ms1.68 msQuestDB 418x faster
single-groupby-1-8-160.99 ms1.39 msQuestDB 44x faster
single-groupby-5-1-164.44 ms0.99 msQuestDB 65x faster
single-groupby-5-1-12742.97 ms1.98 msQuestDB 375x faster
single-groupby-5-8-166.21 ms1.54 msQuestDB 43x faster

Query naming: single-groupby-{metrics}-{hosts}-{hours} (e.g., 5-1-12 = 5 metrics, 1 host, 12-hour range)

Double-groupby queries

↓ Lower is better

Aggregates across ALL hosts, grouped by host and 1-hour intervals

28-35xfaster than InfluxDB 3 Core
40-58msQuestDB latency
1.4-1.6sInfluxDB 3 Core latency
QueryInfluxDB 3 CoreQuestDBComparison
double-groupby-11,397.71 ms40.00 msQuestDB 35x faster
double-groupby-51,509.05 ms46.00 msQuestDB 33x faster
double-groupby-all1,625.68 ms58.00 msQuestDB 28x faster

Heavy queries

high-cpu-all query latency · ↓ Lower is better

Full table scan finding hosts with CPU utilization above threshold

17xfaster than InfluxDB 3 Core
<1sQuestDB response
~17sInfluxDB 3 Core response
QueryInfluxDB 3 CoreQuestDBComparison
high-cpu-all16,894.90 ms994.00 msQuestDB 17x faster

Explaining performance differences

InfluxDB 3 Core observations

Ingestion: The consistent ~320K rows/sec throughput across all cardinality levels suggests the bottleneck is not related to series management (unlike v1/v2) but rather in the write path itself—possibly WAL handling, Parquet encoding, or HTTP request processing.

Queries: Results show consistent ~55-65 ms latency for simple 1-hour queries regardless of the number of metrics or hosts queried. This suggests a fixed per-query overhead, possibly from:

  • Arrow Flight connection/protocol overhead
  • DataFusion query planning
  • Optimization opportunities in the new architecture

Longer time ranges (12-hour queries) scale linearly with data volume, reaching ~700-740 ms. The heavy analytical query (high-cpu-all) takes ~17 seconds.

Comparison with InfluxDB v1/v2

Interestingly, InfluxDB 3 Core shows slower performance than InfluxDB v1 and v2 on most workloads:

MetricInfluxDB v1InfluxDB v2InfluxDB 3 Core
Ingestion (4K hosts)787K rows/sec514K rows/sec320K rows/sec
single-groupby-1-1-10.42 ms0.73 ms58.70 ms
double-groupby-1853 ms935 ms1,397.71 ms
high-cpu-all16,045 ms16,655 ms16,894.90 ms

The new Arrow/DataFusion architecture is still maturing. Performance may improve in future releases as the codebase is optimized.

QuestDB performance

QuestDB maintains sub-2 ms latency on single-groupby queries and 40-58 ms on full-table double-groupby aggregations. Ingestion peaks at 11.4M rows/sec at 100K hosts. The columnar storage with SIMD-optimized aggregation functions provides consistent performance across query types.

Conclusion

InfluxDB 3 Core represents InfluxData's bet on the Apache Arrow ecosystem. While current performance lags behind both QuestDB and older InfluxDB versions, the architectural foundation (Arrow, DataFusion, Parquet) provides a path to improvement. Notably, the new architecture eliminates the cardinality-based performance degradation that plagued v1/v2.

QuestDB's purpose-built columnar engine with SIMD optimization delivers 12x to 36x faster ingestion and 17x to 418x faster query performance on these benchmarks. For production workloads requiring high-throughput ingestion and predictable low-latency queries, QuestDB remains the faster choice.

We'll continue to monitor InfluxDB 3 Core performance as new versions are released.

Performance summary

WorkloadInfluxDB 3 CoreQuestDBAdvantage
Ingestion (4K hosts)320K rows/sec8.39M rows/secQuestDB 26x faster
Ingestion (1M hosts)320K rows/sec7.33M rows/secQuestDB 23x faster
Simple aggregation (1h)55-65 ms~1 msQuestDB 43-65x faster
Extended range (12h)700-740 ms~2 msQuestDB 375-418x faster
Double-groupby1.4-1.6 s40-58 msQuestDB 28-35x faster
Heavy scan16.9 s994 msQuestDB 17x faster

Ready to try QuestDB? Get started with the quickstart guide or join our Slack community.

Subscribe to our newsletters for the latest. Secure and never shared or sold.