Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.helix-db.com/llms.txt

Use this file to discover all available pages before exploring further.

For the complete documentation index optimized for AI agents, see llms.txt.
At HelixDB we’ve been focused on performance for the last few weeks. Here are our benchmarks for HelixDB, Neo4j, and Postgres (edges as joins) on a realistic graph dataset. We’re still working on Vector benchmarks - stay tuned!
TL;DR (10,000 users, 500,000 items, ~4M edges).
  • HelixDB crushes graph workloads (5-20x faster) and is your best bet for production graph workloads (GraphRAG, recommendations, social graphs)
  • Neo4j 5-20x slower than HelixDB
  • Postgres is 10-80x slower
Dataset hash ffed7c34a46dc90e · Conducted November 2025 · Raw data in repo

How to Read This

TermMeaning
P50 / P95 / P9950th / 95th / 99th percentile latency
ops/secSuccessful operations per second (throughput)
FixedConcurrencySustained load at N concurrent clients
FixedQPSConstant request rate, measures latency stability

Test Environment

Hardware: AWS c6g.2xlarge (eu-west-2) · 8 vCPUs (ARM Neoverse-N1) · 16 GB RAM · 500 GB gp3 EBS Software: Ubuntu 24.04 LTS · HelixDB v2.1.0 · Neo4j 2025.09.0 (G1GC) · PostgreSQL 16.10 Benchmark: 2s warmup · 5s measurement window · FixedConcurrency (100/200/400/800) + FixedQPS (400/800/1600) Dataset: 10k users across 25 countries · 500k items across 1k categories · ~4M edges (~400/user)

Workloads Tested

IDNameDescriptionExample Use
1PointGetRetrieve entity by IDProduct detail fetch
2OneHopTraverse all user -> item edgesWatch history
3OneHopFilterTraverse + filter by category”Action movies watched”

Results Summary

WorkloadRaw WinnerPerformance Gap
PointGetHelixDB12x Postgres, 16x Neo4j
OneHopHelixDB5.9x Neo4j, 13x Postgres
OneHopFilterHelixDB4.2x Neo4j, 20x Postgres

Detailed Results

1 · PointGet — Simple ID Lookup

Retrieve single item by ID (product detail, user profile). Winner: HelixDB — 12x Postgres, 16x Neo4j PointGet Performance PointGet FixedQPS

FixedConcurrency Results

DatabaseConcurrencyThroughput (ops/sec)P50 Latency (ms)P95 Latency (ms)P99 Latency (ms)
HelixDB10090,238.41.071.291.41
Neo4j10011,706.08.439.1111.30
Postgres10015,435.06.466.616.71
HelixDB200156,136.01.201.621.94
Neo4j20011,802.016.7718.7219.78
Postgres20015,307.413.0513.3413.47
HelixDB400186,642.41.922.813.44
Neo4j40011,592.234.1237.6138.86
Postgres40015,685.625.4725.8626.16
HelixDB800186,590.83.576.738.62
Neo4j80011,771.867.5270.9071.72
Postgres80015,670.251.0551.9552.94

FixedQPS Results

DatabaseTarget QPSActual Throughput (ops/sec)P50 Latency (ms)P95 Latency (ms)P99 Latency (ms)
HelixDB400400.20.870.900.97
Neo4j400400.20.870.910.93
Postgres400400.20.420.440.46
HelixDB800800.20.870.900.96
Neo4j800800.20.870.940.97
Postgres800800.00.420.500.53
HelixDB16001,600.00.930.991.10
Neo4j16001,600.00.920.991.03
Postgres16001,600.00.711.331.36

2 · OneHop — Graph Traversal

Fetch all items a user interacted with (~400 edges/user). Winner: HelixDB — 5.9x Neo4j, 13x Postgres OneHop Performance OneHop FixedQPS

FixedConcurrency Results

DatabaseConcurrencyThroughput (ops/sec)P50 Latency (ms)P95 Latency (ms)P99 Latency (ms)
HelixDB10014,964.66.0911.8715.30
Neo4j1002,555.038.7542.9646.08
Postgres1001,138.287.8489.3890.38
HelixDB20015,129.212.7218.7422.21
Neo4j2002,574.077.5381.0482.36
Postgres2001,148.4174.13176.07177.03
HelixDB40015,122.825.9632.0035.50
Neo4j4002,560.0156.40160.08161.52
Postgres4001,148.4348.39350.02351.22
HelixDB80014,996.852.8458.8862.44
Neo4j8002,562.2311.93317.19318.83
Postgres8001,144.6696.85698.79699.19

FixedQPS Results

DatabaseTarget QPSActual Throughput (ops/sec)P50 Latency (ms)P95 Latency (ms)P99 Latency (ms)
HelixDB400400.21.702.512.65
Neo4j400400.23.523.974.09
Postgres400400.21.271.371.44
HelixDB800800.21.512.452.67
Neo4j800800.23.624.194.72
Postgres800800.21.702.702.84
HelixDB16001,600.01.532.432.73
Neo4j16001,600.24.065.095.90
Postgres16001,143.8349.81351.85352.76

3 · OneHopFilter — Filtered Traversal

Find items a user interacted with in a specific category. Winner: HelixDB — 4.2x Neo4j, 20x Postgres OneHopFilter Performance OneHopFilter FixedQPS

FixedConcurrency Results

DatabaseConcurrencyThroughput (ops/sec)P50 Latency (ms)P95 Latency (ms)P99 Latency (ms)
HelixDB10032,030.22.945.197.54
Neo4j1007,826.012.5614.8016.85
Postgres1001,654.460.4461.3261.61
HelixDB20033,277.05.848.9612.93
Neo4j2007,660.225.8728.4929.41
Postgres2001,663.6120.12121.57122.07
HelixDB40033,540.811.6716.3119.85
Neo4j4007,832.050.6853.6554.84
Postgres4001,653.0240.47254.54256.58
HelixDB80033,438.623.6428.3232.03
Neo4j8007,935.8100.48104.09105.07
Postgres8001,659.8482.84485.47486.47

FixedQPS Results

DatabaseTarget QPSActual Throughput (ops/sec)P50 Latency (ms)P95 Latency (ms)P99 Latency (ms)
HelixDB400400.21.161.211.23
Neo4j400400.21.201.251.31
Postgres400400.20.991.131.31
HelixDB800800.21.091.151.19
Neo4j800800.01.221.281.32
Postgres800800.01.001.621.67
HelixDB16001,600.21.091.281.38
Neo4j16001,600.01.201.351.68
Postgres16001,600.04.636.507.40

Performance Highlights

DatabaseBest AtLatency (P50)
HelixDBGraph operations0.9-2.5 ms
Neo4jGraph operations2.0-2.1 ms
PostgresSQL5-40 ms

Limitations & Reproducibility

What we didn’t test:
  • Cold-start latency
  • Insertion times
  • Memory footprint during ingestion
  • Operational complexity
How to reproduce:
  • Dataset hash: ffed7c34a46dc90e
  • Raw JSON results, configs, and benchmark driver in repo
  • Tests: November 2025, AWS c6g.2xlarge (eu-west-2)

The Bottom Line

For graph workloads (GraphRAG, Agentic systems, recommendations, social graphs): -> Use HelixDB. The 5-20x graph advantage dominates in real-world scenarios where traversals are frequent.
Benchmark data + scripts: github.com/helixdb/graph-vector-bench