1/3
XenForo Veritabanı Optimize Etme işlemi nasıl yapılır?
Sorunun özeti
XenForo’da “Veritabanı optimize etme” iki şekilde ele alınabilir:
1) Admin panelinden bakım/onarım işlemleri
2) MySQL/MariaDB tarafında tablo optimizasyonu (phpMyAdmin veya komut satırı)
Aşağıda ikisini de adım adım yazıyorum.
1. XenForo admin panelinden bakım/optimizasyon
Tam anlamıyla “OPTIMIZE TABLE” yapmaz ama tablo bütünlüğü ve index açısından temizlik sağlar, genelde çoğu forum için bu kadarı yeterlidir.
- AdminCP’ye gir
- Araçlar (Tools) menüsüne tıkla
- Bakım (Maintenance) bölümüne gir
- Burada:
- Onarım: Tabloları onar (Rebuild caches / Rebuild...) gibi seçenekleri kullan
- Özellikle:
- Kullanıcı istatistiklerini yeniden oluştur
- Arama indexini yeniden oluştur
- İçerik sayacı, forum sayacı gibi sayaç/önbellek rebuild işlemlerini çalıştır
Bu işlemler:
- Bozuk sayaçları düzeltir
- Arama performansını iyileştirir
- Önbellekleri temizleyip sağlıklı hale getirir
2. Veritabanı (MySQL/MariaDB) tarafında gerçek "OPTIMIZE" işlemi
Önemli uyarı: Canlı sitede işlem yapmadan önce mutlaka tam veritabanı yedeği al. Büyük tablolarda (özellikle
xf_post, xf_thread) işlem süresince kilitlenme olabilir, bu sırada site yavaşlayabilir veya kısa süreliğine kilitlenebilir.A) phpMyAdmin üzerinden
- Hosting kontrol panelinden phpMyAdmin’e gir
- Soldan XenForo veritabanını seç
- Tablo listesinde:
- Tümünü işaretle (alt/üst kısımdaki “Tümünü işaretle” kutucuğu)
- Alt kısımda Seçili olanları: menüsünden Optimize table seç
- Çalıştır dedikten sonra her tablo için
OPTIMIZE TABLEkomutu uygulanır
Yalnızca çok büyüyen tablolara yapmak istersen örnek (XenForo’nun tipik büyük tabloları):
- xf_post
- xf_thread
- xfiplog
- xferrorlog
- xf_session (çöpe yakın oturum verileri – gerekirse temizlenip optimize edilebilir)
B) Komut satırı (SSH) üzerinden
Sunucuya SSH erişimin varsa, root veya ilgili kullanıcıyla giriş yapıp MySQL’e bağlanabilirsin:
Bash:
mysql -u kullanıcı_adı -p
Şifreyi girdikten sonra:
SQL:
USE veritabani_adi;
OPTIMIZE TABLE xf_post;
OPTIMIZE TABLE xf_thread;
OPTIMIZE TABLE xf_ip_log;
OPTIMIZE TABLE xf_error_log;
Tüm tablolar için tek seferde yapmak istersen (büyük sitelerde dikkatli olmak lazım):
SQL:
SELECT CONCAT('OPTIMIZE TABLE ', table_name, ';')
FROM information_schema.tables
WHERE table_schema = 'veritabani_adi';
Bu çıkan komutları kopyalayıp çalıştırabilirsin.
3. Ne sıklıkla yapmak gerekir?
- Küçük/orta ölçekli forumlarda:
- 3–6 ayda bir genel optimizasyon yeterli
- Çok büyük ve yoğun forumlarda:
- İzleme (slow query log, disk kullanımı, fragmentasyon) sonucuna göre ihtiyaç oldukça
Sık sık manuel
OPTIMIZE TABLE yapmak yerine:- MySQL/MariaDB’yi InnoDB ile ve uygun
innodb_file_per_table,innodb_buffer_pool_sizeayarlarıyla kullanmak - Eski log ve oturum verilerini otomatik temizlemek (XF’nin kendi pruning ayarları)
Özet
XenForo içinde AdminCP → Araçlar → Bakım kısmındaki rebuild/bakım işlemleri temel temizlik/optimizasyonu sağlar. Asıl veritabanı tablosu sıkıştırma ve parçalanmayı giderme işlemi ise phpMyAdmin veya MySQL üzerinden
OPTIMIZE TABLE komutuyla yapılır. Tüm işlemlerden önce mutlaka veritabanı yedeği almak gerekir.