Nedense, MySQL sunucumdaki tüm InnoDB tabloları mysqltuner çalıştırdığınızda parçalanmış olarak listeleniyor. Sunucuyu yalnızca birkaç saat önce (OSX Lion'da) yükledim ve içinde toplu iş dosyalarından alınan bir sürü taze veri var.
Bir veritabanındaki tüm tabloları MYISAM'a dönüştürmeyi denedim ve parçalanmış tabloların sayısının düştüğünden eminim. Garip bir şekilde, bu tabloları InnoDB'ye dönüştürdüğümde parçalanmış tablo sayısı tekrar geri çekildi. Bu şimdiye kadar yaptığım araştırmanın aksine, koşmanın ALTER TABLE table_name ENGINE=INNODB;
parçalanmayı düzeltmesi gerektiğini gösteriyor .
Google'dan biraz sonra koştum:
SELECT table_schema, table_name, data_free/1024/1024 AS data_free_MB
FROM information_schema.tables
WHERE engine LIKE 'InnoDB' AND data_free > 0
Sözde tüm parçalanmış tabloları listeler (gerçekten parçalanmış tablo sayısı için mysqltuner çıktıları ile aynı sayıda sonuç döndürür). Her bir giriş data_free_MB
sütunda tam olarak aynı numaraya sahiptir (şu anda 7.00000000).
Bu gerçekten gerçek bir sorun mu yoksa mysqltuner'ın yanlış yaptığı bir şey mi? Sorun varsa, nasıl düzeltebilirim?
DÜZENLE
Bir aptal olduğumdan ve 7MB'lık parçalanmanın her dosya için değil, tüm dosya için olduğundan daha fazla şüpheleniyorum. Herkes böyle bir durumun doğru olup olmadığını teyit edebilir mi?
[!!] Total fragmented tables: 2314
ki eminim bir problemi gösterir (çift kırmızı ünlem işareti ile)