Three Things That Differentiate Amazon Aurora From MySQL

Posted by Preetam Jinka on Jan 27, 2017 3:20:50 PM

It's not always obvious what makes one database type distinct from another. What are the most significant ways that Amazon Aurora is different from MySQL? Clear separators aren't always featured or widely known, but even slight variables between two databases can prove valuable in choosing which one is right for you and your organization.

In the case of Aurora, there are at least three interesting things that make it unique and that present opportunities for particular uses. (Thanks in advance to @saileshkrish for helping us stay in-the-know on what Aurora can do.)

Adaptive Thread Pool

Aurora's thread pool doesn't look quite like MySQL's, does it? With features like multiplexed connections and the ability to handle over 5,000 concurrent sessions, Aurora's thread pool means you don't have to use connection pooling. It's much more scalable than MySQL's thread pooling, and when you use it, you have one fewer thing you need to worry about on the database. Overall, Aurora's thread pool is a much more "modern" system. It's what you would expect to see from a database created today.

Transactional DDL

DDL refers to operations like ALTERs. It's not just transactional, but online too. This is the benefit of using log-structured storage.

Online DDL MySQL v Aurora.jpg

Online DDL Performance.jpg

This isn't actually documented anywhere we've seen, but it's a definite benefit to know about.

A Rewritten Query Cache

Aurora's rewritten query cache could represent a pretty major difference in how it should be run vs. MySQL. MySQL's query cache is frequently the cause of server stalls, as we've seen with our Adaptive Fault Detection. It can cause more harm than good, and there's a reason why it's been disabled by default in MySQL for more than four years.

Aurora's brand new query cache makes the feature worth revisiting. This comes with the caveat that we at VividCortex haven't yet investigated Aurora's query cache--if you choose to use it, you should still benchmark it both enabled/disabled with your workload, then act according to the results you see.

Do you know any other important characteristics of Aurora that helps distinguish it from other DBMS? Have you been in the position where you've had to choose either MySQL or Aurora? How did you decide?

Recent Posts

Posts by Topic

see all