Recently, I found myself re-installing everything from Homebrew and began to notice that MySQL was consuming nearly half a gig of memory. Given that I don’t do too much with MySQL on a regular basis, I opted to override a handful of default configuration options to reduce the memory footprint.
As you can see, a fresh MySQL install via homebrew was consuming over 400mb of memory.
Here is how I reduced my memory footprint:
$ mkdir -p /usr/local/etc
Unless you already have a custom MySQL config file, you will want to add one into this directory.
$ vim /usr/local/etc/my.cnf
We’ll then paste in the following options into our file… and save it.
# Robby's MySQL overrides [mysqld] max_connections = 10 key_buffer_size = 16K max_allowed_packet = 1M table_open_cache = 4 sort_buffer_size = 64K read_buffer_size = 256K read_rnd_buffer_size = 256K net_buffer_length = 2K thread_stack = 128K
Finally, we’ll restart MySQL.
$ mysql.server stop
If you have MySQL setup in
launchctl, it should restart automatically. After I did this, my MySQL instance was now closer to 80mb.
So far, this has worked out quite well for my local Ruby on Rails development. Mileage may vary…
Having said that, how much memory are you now saving?