Surprised to see AWS Aurora *slower* than RDS

7 points by slisznia ↗ HN
We migrated from MySQL RDS/AZ to Aurora and a number of our queries became ~22% slower.

Old DB: t2.medium RDS AZ

New DB: Aurora r3.large

For example, a representative set of SELECT queries run against both DBs:

$ time rds-db < perf_test.sql

real 0m34.502s

$ time aurora-db < perf_test.sql

real 0m42.240s

=========

We got a reply from AWS support person who contacted Aurora Tech team on our behalf. I include his reply, relevant if you're seeing similar degradation of performance. In a nutshell, single queries are _expected_ to be slower on Aurora. Aurora will scale better with concurrency.

"Nice talking on the phone with you! I have talked to RDS team about your issue with performance after switching to RDS Aurora.

The RDS team pointed out that Aurora’s performance will not be better than MySQL if the concurrency features are not used or if you are using Aurora as a traditional MySQL. They said Aurora will be highly beneficial if your work load is highly concurrent.

Aurora though should have 5x more throughput than RDS MySQL but only when the work load is used efficiently as it works well with multiple concurrent queries."

3 comments

[ 3.5 ms ] story [ 19.6 ms ] thread
This might make a good blog post, particularly if more technical details were added about the factors affecting speed.
This will apply to a lot of technologies - of course X is slower than Y if you don't optimise your app to take advantage of the features and architecture of X.

What that means in terms of RDS vs Aurora, I'm not sure. But would be great to hear what your outcomes are!

Few more tests of the same aggregate reports to gain better perspective. MySQL 5.6.27 was the clear winner.

RDS MySQL 5.6.27 T2 Large: 0m34.977s

RDS MariaDB 10.1.14 T2 Large: 0m38.097s

RDS MySQL 5.7.11 T2 Large: 0m40.408s

RDS MySQL 5.6.27 T2 Medium: 0m53.214s

RDS MariaDB 10.1.14 R3 Large: 0m54.946s

Aurora (6/4/16) R3 Large: 1m07.187s

If there is enough interest we can provide a fully reproducible test case for anyone else to try. Currently we are using reports our customers run to validate performance of various types of DBs.