Everything You Need to Know About Scaling MySQL – Part 1: An Overview

Those who’ve followed our blog closely or stopped by before have almost certainly noticed that we’ve discussed MySQL’s approach to performance quite a few times already. While the popular open source database does have its merits, as technology evolves and customers grow to expect even more of e-commerce websites, one can’t help but see its limitations, particularly when it comes to scalability.

We’re proud to announce our upcoming blog series focused on scaling MySQL. We figured now is as good a time as any to take a step back and get a bird’s-eye view of MySQL performance and scalability. Then once we’ve explained the big picture, it’ll be time to drill down into the details.

Here’s some of what you can expect to see covered as this series unfolds:

What kinds of difficulties will you encounter in a MySQL e-commerce environment? In today’s digitally driven world, websites have to process far more transactions than ever before, and be far more available as well. MySQL e-commerce sites tend to encounter difficulties associated with both scale (scaling-up rather than scaling-out), as well as availability (can’t scale the write-master).

What can you do once your MySQL database reaches its limit? It’s only a matter of time before a popular e-commerce site that’s powered by MySQL will grind to a halt. Once you’ve scaled up your write-master to the largest instance available, the next step is: sharding or replatforming. Both represent significant increases in complexity and cost.

How easy is it to support MySQL, anyway? Because your database powers your website, you need to make sure you can easily support it. Unfortunately, it can be difficult to tend a MySQL master/slave array. You can choose to give a database-as-a-service (DBaaS) solution, like Aurora from Amazon Web Services, but you’ll have to pay a premium.

How do Facebook and Google deal with MySQL? It’s also worth learning the lessons of the limitations of MySQL from two tech juggernauts: Facebook spent millions to support its huge deployment, while Google abandoned MySQL altogether due to scaling-related issues and built its own database.

What about Aurora? Does it ‘fix’ any of MySQL’s difficulties? While Amazon’s certainly written a lot about the storage features and ‘MySQL compatibility’ of Aurora, the e-commerce juggernaut has remained curiously quiet about the soon-to-be-released database’s architecture. Specifically, what are the ACID guarantees between Availability Zones? Unlike Clustrix, it remains to be seen whether Aurora will be fully ACID-compliant.

Generally speaking, when businesses want to scale their MySQL databases in the cloud, they will scale up, adding additional capacity to accommodate growth. However, MySQL has limitations, and after awhile, your database will certainly experience performance and latency issues. And in the case of e-commerce sites, those malfunctions will almost certainly translate into missed revenue. On the other hand, you could decide to choose a database that scales out horizontally, enabling you to rest comfortably knowing that your site can accommodate an unlimited number of users.

Thanks for stopping by! We look forward to discussing scaling MySQL with you in the coming weeks.