Teknoloji 27.06.2026

MySQL/MariaDB Query Cache ve Bellek Optimizasyonu

MySQL/MariaDB Query Cache ve Bellek Optimizasyonu

Veritabanı optimizasyonu neden kritik öneme sahiptir?

Web sitelerinin hızını belirleyen en önemli faktörlerden biri veritabanı (MySQL/MariaDB) yanıt süresidir. Dinamik web siteleri (WordPress, e-ticaret siteleri) her sayfa açılışında onlarca veritabanı sorgusu çalıştırır. Eğer veritabanı sunucunuz doğru optimize edilmemişse, disk gecikmeleri ve yetersiz RAM kullanımı nedeniyle işlemci (CPU) tüketimi tavan yapacak ve web sitelerinizde yavaşlamalar veya bağlantı hataları (Error Establishing a Database Connection) yaşanacaktır.

Doğru bir veritabanı yapılandırması, VDS sunucu performansınızı en üst seviyeye çıkararak aynı donanımla çok daha fazla ziyaretçi barındırmanıza olanak tanır.

my.cnf yapılandırma dosyasını düzenleme

MySQL ve MariaDB ayarları varsayılan olarak `/etc/my.cnf` veya `/etc/mysql/my.cnf` dosyasından yönetilir. Dosyayı düzenlemek için SSH üzerinden açın:

nano /etc/my.cnf

1. InnoDB Buffer Pool Size ayarı (En Önemlisi)

InnoDB motoru, verileri ve dizinleri disk yerine doğrudan RAM'de önbelleğe alarak okur. Bu değer, sunucunuzdaki kullanılabilir RAM'e göre belirlenmelidir. Sadece veritabanı barındıran sunucularda RAM'in %70-%80'i atanabilirken, web hosting sunucularında toplam RAM'in %30-%50'si kadar ayarlanmalıdır:

innodb_buffer_pool_size = 1G  # 4 GB RAM'e sahip sunucular için uygundur

2. Query Cache (Sorgu Önbelleği) yapılandırması

Sıkça çalıştırılan ve içeriği değişmeyen SQL sorgularının önbelleğe alınması, veritabanı üzerindeki yükü ciddi oranda azaltır. MariaDB veya eski MySQL sürümleri için şu ayarları ekleyebilirsiniz:

query_cache_type = 1
query_cache_size = 64M
query_cache_limit = 2M

3. Maksimum bağlantı limiti (max_connections)

Sunucunun aynı anda kabul edeceği maksimum veritabanı bağlantı sayısını belirler. Değerin çok düşük olması sitelerde "Too many connections" hatasına yol açarken, çok yüksek olması RAM'in tamamen tükenmesine neden olabilir:

max_connections = 150

Ayarları uyguladıktan sonra veritabanı servisini yeniden başlatın:

systemctl restart mariadb # Veya mysql

Sık sorulan sorular

Query Cache her MySQL sürümünde var mıdır?

MySQL 8.0 sürümüyle birlikte Query Cache özelliği tamamen kaldırılmıştır. Eğer MySQL 8.0 kullanıyorsanız, sorgu önbellekleme yerine uygulama düzeyinde Redis veya Memcached önbellekleme sistemlerini kullanmalısınız.

Optimizasyon değerlerini otomatik analiz eden bir araç var mı?

Evet, sunucunuz birkaç gün çalıştıktan sonra **MySQLTuner** scriptini indirip çalıştırarak veritabanınızın kaynak kullanımını analiz edebilir ve size en uygun my.cnf parametre önerilerini alabilirsiniz:

wget http://mysqltuner.pl/mysqltuner.pl
perl mysqltuner.pl
QBilisim.Com

IRCd, hosting ve sunucu operasyonunu tek yerden yönet.

Kurulum, taşıma, DNS, SSL, applet ve destek süreçleri için müşteri panelinden talep oluşturabilirsin.