- Puanlar
- 5679
- Başarılar
- 8
- New
- #1
⚡ MySQL Performans Optimizasyonu (cPanel & DirectAdmin)
MySQL, web sitenizin en kritik bileşenlerinden biridir. Doğru yapılandırılmamış bir MySQL sunucusu, sitenizin yavaşlamasına hatta çökmesine neden olabilir. Bu rehberde cPanel ve DirectAdmin üzerinde MySQL optimizasyonunu adım adım anlatacağım.
📌 1. Mevcut Durumu Kontrol Edin
Optimizasyona başlamadan önce mevcut yapılandırmayı yedekleyin:
cat /etc/my.cnf mysqladmin variables -u root -p | grep "buffer_size"
📁 2. Hazır Konfigürasyon Dosyaları (Eski sistemler için)
MySQL'in eski sürümlerinde hazır .cnf dosyaları bulunurdu. Bu dosyalar MySQL 5.7+ için geçerlidir:
| Dosya | Önerilen RAM |
|---|---|
| my-small.cnf | < 64 MB |
| my-medium.cnf | 32 - 64 MB |
| my-large.cnf | 512 MB - 2 GB |
| my-huge.cnf | 2 GB - 4 GB |
⚠️ Uyarı: Bu dosyalar MySQL 5.5 ve öncesi içindir. MySQL 8.0 kullanıyorsanız, aşağıdaki modern yöntemi uygulayın.
🚀 3. Modern MySQL Optimizasyonu (MySQL 5.7+ / 8.0)
Hazır dosyalar yerine manuel optimizasyon daha sağlıklıdır. Aşağıdaki parametreleri /etc/my.cnf dosyanıza ekleyin:
[mysqld] # InnoDB (günümüz standart motoru) innodb_buffer_pool_size = 1G # Toplam RAM'in %70-80'i innodb_log_file_size = 256M innodb_flush_log_at_trx_commit = 2 # Performans için (kritik veride 1) innodb_flush_method = O_DIRECT # Genel max_connections = 150 query_cache_size = 0 # MySQL 8.0'da kaldırıldı query_cache_type = 0 # MyISAM (eski tablolar için) key_buffer_size = 64M table_open_cache = 4000 # Günlük slow_query_log = 1 slow_query_log_file = /var/log/mysql-slow.log long_query_time = 2
⚙️ 4. Yapılandırmayı Uygulama (cPanel / DirectAdmin)
Önce mevcut dosyayı yedekleyin:
cp /etc/my.cnf /etc/my.cnf.yedek
Yeni dosyayı oluşturun veya düzenleyin:
nano /etc/my.cnf
MySQL'i yeniden başlatın:
# cPanel ve modern sistemler systemctl restart mysql # veya service mysql restart # DirectAdmin systemctl restart mysqld # veya service mysqld restart
🔍 5. Optimizasyonu Test Etme
Optimizasyon sonrası performansı kontrol edin:
mysqladmin status -u root -p mysqlcheck -o --all-databases # Tabloları optimize et
Ayrıca MySQL Tuner aracını kullanarak öneriler alabilirsiniz:
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl perl mysqltuner.pl
⚠️ Önemli Uyarılar
- ❌ my-huge.cnf gibi dosyaları doğrudan kopyalamak güncel MySQL'de hata verebilir.
- ✅ Her sunucu farklıdır; kesin performans için MySQL Tuner gibi araçlarla test yapın.
- ✅ Değişikliklerden sonra
mysql.logdosyasını kontrol edin. - ✅ Production sunucusunda değişiklik yapmadan önce yedek alın.
📖 Kaynaklar:
- MySQL InnoDB Optimizasyonu
- MySQL Tuner Aracı