Click on a Query ID to securely view the scripts run across the databases.
| Query | Database | Operation | Script |
|---|---|---|---|
| Q1 | Cassandra |
Read customer by ID
Partition key row lookup on customer table
|
scripts/cassandra_q1.groovy |
| MongoDB |
Read customer by ID
Primary key document lookup on customer collection
|
scripts/mongo_q1.groovy | |
| MySQL |
Read customer by ID
Indexed SELECT on customer table
|
scripts/mysql_q1.groovy | |
| Q2 | Cassandra |
Read customer orders detail
Partition key scan across orders table
|
scripts/cassandra_q2.groovy |
| MongoDB |
Read customer orders detail
Embedded / linked orders sub-document lookup
|
scripts/mongo_q2.groovy | |
| MySQL |
Read customer orders detail
JOIN across customer & orders tables
|
scripts/mysql_q2.groovy | |
| Q3 | Cassandra |
Aggregation: orders by status differs
COUNT per customer partition — no full aggregation support
|
scripts/cassandra_q3.groovy |
| MongoDB |
Aggregation: orders by status
Aggregation pipeline — group by order status
|
scripts/mongo_q3.groovy | |
| MySQL |
Aggregation: orders by status
GROUP BY on order status column
|
scripts/mysql_q3.groovy | |
| Q4 | Cassandra |
Range / filter query differs
Filtered scan on lineitems return flag — no cross-partition range
|
scripts/cassandra_q4.groovy |
| MongoDB |
Range / filter query
Range filter on nation / region field
|
scripts/mongo_q4.groovy | |
| MySQL |
Range / filter query
JOIN + WHERE clause filtering by region
|
scripts/mysql_q4.groovy | |
| Q5 | Cassandra |
Revenue aggregation
SUM aggregation on lineitems partition
|
scripts/cassandra_q5.groovy |
| MongoDB |
Revenue aggregation
Pipeline SUM of extended price across lineitems
|
scripts/mongo_q5.groovy | |
| MySQL |
Revenue aggregation
SUM with multi-table JOIN on TPC-H schema
|
scripts/mysql_q5.groovy |
| Query | Database | Samples | Avg (ms) | Min (ms) | Max (ms) | Throughput | Error % |
|---|---|---|---|---|---|---|---|
| Q1 | Cassandra | 500 | 3.5 | 0 | 580 | 286.37/s | 0.0% |
| MongoDB | 500 | 53.4 | 1 | 2362 | 18.74/s | 0.0% | |
| MySQL | 500 | 9.6 | 0 | 314 | 103.76/s | 0.0% | |
| Q2 | Cassandra | 500 | 2.3 | 0 | 54 | 430.66/s | 0.0% |
| MongoDB | 500 | 80.4 | 47 | 2162 | 12.44/s | 0.0% | |
| MySQL | 500 | 19.7 | 0 | 78 | 50.69/s | 0.0% | |
| Q3 | Cassandra | 500 | 1.8 | 0 | 26 | 568.83/s | 0.0% |
| MongoDB | 500 | 72.3 | 46 | 101 | 13.83/s | 0.0% | |
| MySQL | 500 | 11.1 | 0 | 54 | 89.85/s | 0.0% | |
| Q4 | Cassandra | 500 | 2.0 | 0 | 30 | 509.68/s | 0.0% |
| MongoDB | 500 | 77.0 | 51 | 119 | 12.99/s | 0.0% | |
| MySQL | 500 | 11.0 | 0 | 69 | 91.19/s | 0.0% | |
| Q5 | Cassandra | 500 | 2.6 | 0 | 72 | 381.39/s | 0.0% |
| MongoDB | 500 | 81.8 | 56 | 113 | 12.22/s | 0.0% | |
| MySQL | 500 | 39.3 | 6 | 130 | 25.44/s | 0.0% |