Skip to main content

vs Memgraph

LoraDB vs Memgraph

LoraDB leads by 9.75× overall. Memgraph is an in-memory graph database server. Numbers from the same suite as the overview — identical fixtures, identical seed, identical iteration count.

82 comparable workloads0 omissions12 groups
9.75×slower
Memgraph vs LoraDB overall
Geometric-mean slowdown across the full suite.
54/ 82
Workloads won by LoraDB
28 go to a third engine.
0close calls
Within ~10% on both sides
Workloads where neither engine ran away with the row.

Overall

LoraDB sets the row; Memgraph sits at 9.75× slower.

Geometric-mean slowdown across every workload both engines run. Empty rows happen when the language can’t express the workload — they’re called out below, not hidden.

Per group

Wins by group.

For each group, the workload count, who wins it, and how the per-row tally breaks down between LoraDB, Memgraph, and any third engine that took a row.

  • setup1 workload · winner Grafeo
    LoraDB2.70× slower
    Memgraph904× slower
    Rows · 10·0·1
  • writes9 workloads · winner Grafeo
    LoraDB0.61× slower
    Memgraph3.71× slower
    Rows · 93·0·6
  • scans6 workloads · winner LoraDB
    LoraDBfastest
    Memgraph27.5× slower
    Rows · 65·0·1
  • predicates12 workloads · winner LoraDB
    LoraDBfastest
    Memgraph4.77× slower
    Rows · 128·0·4
  • strings5 workloads · winner Kuzu
    LoraDB1.22× slower
    Memgraph11.3× slower
    Rows · 50·0·5
  • numerics6 workloads · winner Kuzu
    LoraDB1.08× slower
    Memgraph10.7× slower
    Rows · 61·0·5
  • aggregates9 workloads · winner LoraDB
    LoraDBfastest
    Memgraph6.25× slower
    Rows · 98·0·1
  • pipeline9 workloads · winner LoraDB
    LoraDBfastest
    Memgraph4.97× slower
    Rows · 95·0·4
  • lists3 workloads · winner LoraDB
    LoraDBfastest
    Memgraph41.6× slower
    Rows · 32·0·1
  • sort3 workloads · winner LoraDB
    LoraDBfastest
    Memgraph4.28× slower
    Rows · 33·0
  • traversals15 workloads · winner LoraDB
    LoraDBfastest
    Memgraph22.4× slower
    Rows · 1515·0
  • patterns4 workloads · winner LoraDB
    LoraDBfastest
    Memgraph7.59× slower
    Rows · 44·0

Per workload

Raw timings, workload by workload.

Two columns — LoraDB and Memgraph — across every workload they share. Rows with no comparable Memgraphrun are hidden here; they’re listed in the omissions block at the bottom.

setup(1)

WinnerGrafeo
WorkloadSizeLoraDBMemgraphWinner
construct_empty4.06 µs2.70× slower1.36 ms904× slowerGrafeo

writes(9)

WinnerGrafeo
WorkloadSizeLoraDBMemgraphWinner
bulk_edges200606.63 µsfastest3.18 ms5.24× slowerLoraDB
bulk_set_match1000552.39 µs1.84× slower726.92 µs2.42× slowerKuzu
delete_node1000355.70 µs1.47× slower483.58 µs2.00× slowerGrafeo
merge_create1000112.57 µs1.25× slower677.96 µs7.53× slowerGrafeo
merge_existing100023.95 µs2.89× slower304.94 µs36.8× slowerGrafeo
set_multiple_props100021.15 µsfastest313.89 µs14.8× slowerLoraDB
update_set100018.01 µsfastest315.49 µs17.5× slowerLoraDB
write_bulk10001.46 ms1.93× slower3.13 ms4.14× slowerGrafeo
write_single100014.90 µs2.20× slower413.52 µs61.0× slowerGrafeo

scans(6)

WinnerLoraDB
WorkloadSizeLoraDBMemgraphWinner
distinct1000198.38 µsfastest738.04 µs3.72× slowerLoraDB
lookup_by_id1000716.64 nsfastest305.39 µs426× slowerLoraDB
lookup_by_id_indexed1000684.00 nsfastest310.02 µs453× slowerLoraDB
range_filter1000199.70 µs1.04× slower1.22 ms6.31× slowerKuzu
scan_filtered1000149.08 µsfastest1.15 ms7.73× slowerLoraDB
scan_label1000124.96 µsfastest1.61 ms12.9× slowerLoraDB

predicates(12)

WinnerLoraDB
WorkloadSizeLoraDBMemgraphWinner
where_compound_and_or1000213.07 µsfastest997.22 µs4.68× slowerLoraDB
where_contains1000145.04 µsfastest638.95 µs4.41× slowerLoraDB
where_ends_with1000143.60 µsfastest726.66 µs5.06× slowerLoraDB
where_id_in_range1000142.71 µs2.02× slower433.95 µs6.15× slowerGrafeo
where_in_list1000162.42 µsfastest606.63 µs3.74× slowerLoraDB
where_modulo_eq1000127.32 µsfastest717.29 µs5.63× slowerLoraDB
where_not1000166.05 µs1.01× slower1.24 ms7.57× slowerKuzu
where_or1000147.16 µsfastest627.82 µs4.27× slowerLoraDB
where_starts_with1000146.91 µsfastest727.06 µs4.95× slowerLoraDB
where_string_gte1000180.97 µs1.07× slower1.20 ms7.10× slowerKuzu
where_subexpr1000227.59 µs1.69× slower1.76 ms13.1× slowerSurrealDB
where_two_props1000152.69 µsfastest390.30 µs2.56× slowerLoraDB

strings(5)

WinnerKuzu
WorkloadSizeLoraDBMemgraphWinner
string_concat1000186.55 µs1.27× slower1.68 ms11.4× slowerKuzu
string_size1000172.17 µs1.10× slower1.70 ms10.9× slowerKuzu
string_substring1000210.20 µs1.21× slower2.06 ms11.9× slowerKuzu
string_to_lower1000201.00 µs1.33× slower1.72 ms11.4× slowerKuzu
string_to_upper1000185.41 µs1.22× slower1.67 ms11.0× slowerKuzu

numerics(6)

WinnerKuzu
WorkloadSizeLoraDBMemgraphWinner
numeric_abs1000174.85 µs1.13× slower1.64 ms10.6× slowerKuzu
numeric_ceil1000171.69 µs1.10× slower1.78 ms11.5× slowerKuzu
numeric_floor1000175.48 µs1.10× slower1.64 ms10.3× slowerKuzu
numeric_modulo1000144.95 µs1.02× slower1.59 ms11.2× slowerKuzu
numeric_pow1000166.22 µs1.16× slower1.68 ms11.7× slowerKuzu
numeric_round1000180.68 µsfastest1.68 ms9.30× slowerLoraDB

aggregates(9)

WinnerLoraDB
WorkloadSizeLoraDBMemgraphWinner
aggregate_avg100081.43 µsfastest562.93 µs6.91× slowerLoraDB
aggregate_collect100078.90 µsfastest599.26 µs7.60× slowerLoraDB
aggregate_count100059.50 µs2.77× slower381.02 µs17.8× slowerGrafeo
aggregate_count_distinct1000104.05 µsfastest540.27 µs5.19× slowerLoraDB
aggregate_max100079.97 µsfastest572.73 µs7.16× slowerLoraDB
aggregate_min100079.67 µsfastest552.13 µs6.93× slowerLoraDB
aggregate_sum100078.09 µsfastest524.56 µs6.72× slowerLoraDB
grouped_aggregation1000154.46 µsfastest751.51 µs4.87× slowerLoraDB
top_k1000186.50 µsfastest955.44 µs5.12× slowerLoraDB

pipeline(9)

WinnerLoraDB
WorkloadSizeLoraDBMemgraphWinner
case_when1000173.33 µsfastest1.86 ms10.8× slowerLoraDB
coalesce_existing1000161.92 µsfastest1.62 ms9.99× slowerLoraDB
computed_in_return1000151.15 µs1.07× slower1.61 ms11.5× slowerKuzu
distinct_with_order1000508.01 µs2.08× slower692.42 µs2.84× slowerGrafeo
predicate_via_function1000238.39 µs1.38× slower1.77 ms10.3× slowerKuzu
with_aggregate_then_filter1000148.70 µsfastest567.44 µs3.82× slowerLoraDB
with_distinct_then_count1000202.72 µsfastest597.19 µs2.95× slowerLoraDB
with_pipeline1000186.41 µsfastest678.15 µs3.64× slowerLoraDB
with_two_chained1000313.64 µs1.41× slower1.22 ms5.46× slowerKuzu

lists(3)

WinnerLoraDB
WorkloadSizeLoraDBMemgraphWinner
list_in_construction1000177.94 µs1.05× slower2.05 ms12.1× slowerKuzu
list_unwind_explicit10001.11 µsfastest322.60 µs291× slowerLoraDB
range_function100018.86 µsfastest404.85 µs21.5× slowerLoraDB

sort(3)

WinnerLoraDB
WorkloadSizeLoraDBMemgraphWinner
order_by_id_asc1000167.95 µsfastest738.63 µs4.40× slowerLoraDB
order_by_multi_key1000211.99 µsfastest871.82 µs4.11× slowerLoraDB
skip_limit1000162.19 µsfastest704.66 µs4.34× slowerLoraDB

traversals(15)

WinnerLoraDB
WorkloadSizeLoraDBMemgraphWinner
direct_record_traversal500831.70 nsfastest384.41 µs462× slowerLoraDB
recursive_depth2500968.69 nsfastest380.49 µs393× slowerLoraDB
recursive_depth35001.04 µsfastest382.45 µs368× slowerLoraDB
recursive_depth55001.16 µsfastest426.52 µs367× slowerLoraDB
relation_filter500117.78 µsfastest868.53 µs7.37× slowerLoraDB
traversal_count_one_hop50059.36 µsfastest394.49 µs6.65× slowerLoraDB
traversal_filter_one_hop500138.99 µsfastest1.04 ms7.49× slowerLoraDB
traversal_one_hop500125.98 µsfastest1.14 ms9.06× slowerLoraDB
traversal_reverse500123.67 µsfastest1.10 ms8.93× slowerLoraDB
traversal_three_hop500236.10 µsfastest1.23 ms5.21× slowerLoraDB
traversal_two_hop500165.58 µsfastest1.27 ms7.66× slowerLoraDB
traversal_undirected500213.41 µsfastest1.76 ms8.26× slowerLoraDB
variable_length_path10086.24 µsfastest809.87 µs9.39× slowerLoraDB
varlen_2_to_5100123.74 µsfastest986.89 µs7.98× slowerLoraDB
varlen_exact_510056.89 µsfastest576.13 µs10.1× slowerLoraDB

patterns(4)

WinnerLoraDB
WorkloadSizeLoraDBMemgraphWinner
edge_subquery_clause500213.55 µsfastest1.18 ms5.52× slowerLoraDB
star_fanout1000138.96 µsfastest1.62 ms11.7× slowerLoraDB
star_fanout_count100061.36 µsfastest500.19 µs8.15× slowerLoraDB
star_fanout_filter1000112.53 µsfastest707.87 µs6.29× slowerLoraDB