tldr; ArangoDB outperformed Postgres in our relational join tests by an order of magnitude

A recent project had unique database requirements, causing us to evaluate various database, including multi-model databases.  In the evaluation, we compared the performance of a specific query joining multiple tables / collections together.  

Document / NoSQL databases typically are weak at joins, if they support them at all.  So we were curious how ArangoDB would do compared to PostgreSQL.  We modeled the data appropriately for each database, but tested with exactly the same data.  Appropriate and equivalent indexes were created in each database.  Each database was hosted on its own Spot Instance VM on Azure with 2 CPU and 16GB RAM.


PostgreSQL (ver 12.1): Table1: 40k records, Table2: 62k records, Table 3: 119k records

ArangoDB (ver 3.5.3): Collection1: 40k records (with child array of objects equivalent to Table2 in PostgreSQL), Collection 2: 119k records

The output of the queries was identical, consisting of 1000 records.


Comparison of Postgres and ArangoDB join performance

PostgreSQL query time: 481ms

ArangoDB query time: 41ms



While this is just one of many tests, it is typical of the results we have seen in our analysis.  ArangoDB has outperformed Postgres in relational joins.