Geliştirme Ortamları için MySQL Bellek Optimizasyonu

MySQL; geliştirme yaptığınız bilgisayarlarınızda 500 MB civarı memory tüketebilir.

MySQL'in default ayarlarında query_cache'leme, 100 adet bağlantı, yüksek buffer boyutları gibi aslında canlı sistemlere bir ön hazırlık olabilecek ayarlar bulunmaktadır.

Yapacağımız ufak konfigürasyon değişiklikleri ile MySQL'in memory kullanımını 3'te 1'ine indirmek mümkün.

MySQL 8 ve MacOS 11 için belirteceğim aşağıdaki adımların benzerlerini google'da aratarak Windows ve Linux sistemlerinde de uygulayabilirsiniz.

1) my.cnf dosyasının bulunması

Öncelikle mysql'in hangi konfigürasyon dosyasını dinlediğini bulacağız.

Terminalden:

sudo fs_usage | grep my.cnf

komutu ile herhangi bir process'in dosya sisteminde my.cnf'u nerede aradığını dinlemeye başlayalım. 2. bir terminal penceresinden mysql'i restart edelim. Brew ile kurulum yaptıysanız:

brew services restart mysql

Örneğin benim lokalimde restart esnasında pek çok process şu dosyaya erişmeye çalıştı: /opt/homebrew/etc/my.cnf

2) my.cnf değişiklikleri

Aşağıdaki ayarlardan sisteminiz ve kullanımınız için uygun olanları seçebilirsiniz. my.cnf dosyanızda bu satırlar yer almayabilir (default olanları kullandığı için). my.cnf'un içinde en alta ekleyebilirsiniz.

Default 100 bağlantı açmak yerine geliştirme ortamında yeterli olacağını düşündüğümüz 20 bağlantıya düşürüyoruz:

max_connections = 20

MySQL performans şemasını kapatıyoruz:

performance_schema = 0

Bunların haricinde aşağıdaki ufak optimizasyonları da yapmanız mümkün. Ben bu ek ayarlar ile sistemimde kayda değer bir fark görmedim.

key_buffer_size       = 16K
max_allowed_packet    = 1M
sort_buffer_size      = 64K
read_buffer_size      = 256K
read_rnd_buffer_size  = 256K
net_buffer_length     = 2K
thread_stack          = 128K

3) mysql restart

Yine brew ile kurulum yaptıysanız aşağıdaki komut ile restart edebilirsiniz

brew services restart mysql