MySQL Blog Archive
For the latest blogs go to blogs.oracle.com/mysql
The Amazing Shrinking Tarball

MySQL has grown over the years, with much richer functionality and indeed support for whole new usage scenarios. However, all this goodness comes along with another kind of growth, namely a considerable increase in the size of the binary distribution of MySQL Server. We’re now taking some quite significant steps to address this.

In many cases package size is not really a problem: most network connections are snappy, and storage is cheap. Still, for some use cases, for instance in infrastructure setups running perhaps hundreds or even thousands of servers, size matters. The same applies to typically fast moving devops oriented settings, where multiple MySQL versions may be in various stages of evaluation and deployment at the same time.

In such setups, our humble binary tarball for Linux is often the package format of choice. Other formats such as RPM and Deb are excellent for relatively uncomplicated deployments, but if you have more advanced requirements, such as needing to deploy multiple MySQL versions in parallel on one system, the tarball is the way to go.

A popular framework for managing such deployments is Giuseppe Maxia‘s dbdeployer. And Giuseppe has indeed been nagging us for quite some time to put our tarballs on a diet. We took the first step a while ago, by switching compression from gzip to xz. That lopped around 40% off the size of the regular 64 bit tarball. And very recently, with the 8.0.16 release, we introduced a new, “minimal” type of tarball, where we removed the debug binaries and stripped all the regular binaries. This lopped a whopping 90% off the regular tarball size, going from 439.4Mb down to 42.2Mb. Including the compression change, the total reduction is around 93%.

The old, big tarballs still have their uses, and there are also bound to be myriads of scripts out there that rely on certain contents or a certain file naming convention, so we’ll keep producing and distributing those. But for many use cases, the minimal ones should be a perfect choice. You’ll find the entire lineup at the MySQL Community download site

Happy untarring, and as usual, drop us a line in the comments below or submit a bug or change request over on bugs.mysql.com if you come across something that doesn’t look quite the way it should.