A list of resources by people who have either worked at MySQL AB (or Oracle), developed a widely used fork of MySQL, or developed MySQL at scale.
A compilation of reading material — books and blogs by MySQL Experts
For the past couple of years, apart from the official documentation of MySQL, I have referred other sources too for getting more insights into MySQL. I’m listing the ones which I have found to be extremely useful.
Every book and blog mentioned here is written and maintained by people who have either worked at MySQL AB (or Oracle) in some capacity or have developed from a fork of MySQL which is widely used in the community or have extensively used MySQL in production at scale and hence are authorities on the subject.
Having said that, the first place to look for an answer always should be the Official documentation. So, whether you are using MySQL on RDS or Aurora, or you’re using MariaDB or you’re using MyRocks — refer the official documentation on their respective websites first.
The Books to Refer
- High Performance MySQL, 3rd Edition by Baron Schwartz, Peter Zaitsev and Vadim Tkachenko
- Understanding MySQL Internals by Alexander Pachev
The Blogs to Follow
- Percona Database Performance Blog — Percona XtraDB is another flavour of MySQL written by people who have earlier contributed to MySQL source code to improve server performance. These are the guys who have written the book I have mentioned earlier — High Performance MySQL earlier. On their database performance blog, they write about performance, optimization, testing, benchmarking and internals of different flavours of MySQL including MySQL on Amazon Aurora, MySQL on Amazon RDS, MariaDB, XtraDB along with several storage engines like TokuDB, RocksDB, InnoDB, MyIASM, Memory, Blackhole and so on. Apart from the blog, Percona has developed probably the most widely used set of tools for MySQL power users. It is called the Percona Toolkit. They have also written another tool that does hot backups and restores.
2. Several Nines — While Percona’s Blog is more about internals, performance and optimization of databases, on the Several Nines Blog, you find more in-depth articles related to hardcore database administration more centred about distributed computing. Content on this blog is more about HA, scaling, monitoring and so on. Check out the series Become a MySQL DBA. They have a similar series for PostgreSQL.
They also have a product for automation and management of MySQL and several other databases. I haven’t used that yet.
3. Vivid Cortex — is a database performance monitoring and optimization platform company started by Baron Schwartz who left Percona in 2012 to start this company. He has continued contributing this blog after Percona. His writings can also be found here — but are not limited to technology. Again, I have not used this product but have been following the blog for quite some time for insights.
4. Todd’s MySQL Blog — he spent 10 years as a Technical Product Manager at MySQL and was responsible for security in MySQL. His blog posts around grants, permissions, network-layer security, authentication are very insightful. He writes for MariaDB too.
5. MySQL Server Team — for news from MySQL Server Team. Here you would find posts explaining stuff about MySQL’s architecture, upcoming features, upgrade and migration strategies and other announcements about releases and other wide ranging topics core to MySQL Server.
6. MySQL High Availability Team — for news from MySQL High Availability Team. This blog has detailed official posts about all things HA, Replication and MySQL Cluster.
7. MySQL Step By Step — blog with most content around HA, backup and recovery and replication.
8. MySQL Release Team— for news from MySQL Release team. They mostly have announcements about future releases along with their features along with how-to articles about different setups, for instance, MySQL with Docker, Nomad with Docker and MySQL and so on.
9. High Scalability Blog — although not a blog concentrating on MySQL, it covers posts about a lot of companies using MySQL and how it fits into their architecture. Read this for insights into how MySQL is made highly available and scalable at big companies.
10. Data Charmer’s Blog — this is Giuseppe Maxia’s blog. He used to work at MySQL and then later joined Continuent, the company which has written the Tungsten Replicator, a widely used third-party Java-based replicator which supported features like Multi-source replication for earlier versions of MySQL when there was no native support. Do check out the MySQL Replication in Action blog series on this blog.
10. Morgan Tocker’s Blog —he worked as a Product Manager at MySQL and worked with Percona too. He has posted about a wide range of topics on MySQL including commentary on existing and upcoming MySQL features. See his posts about everything InnoDB.
11. Oliver Dasini’s Blog — this blog has posts about a wide range of topics but most frequently about database administration. His other posts cover a kind-of overview of features from a end-user’s perspective, walkthroughs and so on. Currently, he works as a Solutions Architect at MySQL.
12. Galera Cluster’s Blog — if you have deployed MySQL using Galera, this is the most useful blog. Galera is popular for being a syncronous multi-master database cluster. It is an alternative of MySQL’s NDB Cluster.
13. From Dual — is a consulting, training and services firm specialized in MySQL.They write in-depth about MySQL, MariaDB, Galera Cluster and Percona Server.
14. Jean-François Gagné’s Blog — his blog posts mostly revolve around different replication methods, solutions and workarounds. This comes from his extensive experience with setting up replication while he was working at Booking.com.
15. Mikael Ronstrom’s Blog — he is a Senior MySQL Architect at Oracle. His blog is wholly dedicated to writing about performance testing and benchmarking. Great blog for insights into how certain performance fixes are done and tested at MySQL.
- Why Uber moved from PostgreSQL to MySQL — Uber’s Official blog post explaining reasons that they moved to MySQL. Coming from a tech giant, this blogpost faced some backlash from the community as some felt that the observations made in the blog were unfair to and uncharacteristic of PostgreSQL. People have written responses to this like — On Uber’s Choice of MySQL over PostgreSQL.
- MySQL HA at GitHub — how and for what GitHub uses MySQL.
- MySQL Sharding at Pinterest
- Facebook’s MyRocks with RocksDB —a fork of MySQL with considerable write optimizations.
- Slave Scaling at Booking.com
- Netflix Billing Migration
- Engineering at Wix — Scaling MySQL
- Partitioning at Airbnb