basit bir soru, ama bir süredir beni rahatsız ediyor ....
MySQL'de "genel gider" nedir ve endişelenmem gerekir mi?
"tabloyu optimize et" i tıklamak sorunu tam olarak düzeltir mi?
basit bir soru, ama bir süredir beni rahatsız ediyor ....
MySQL'de "genel gider" nedir ve endişelenmem gerekir mi?
"tabloyu optimize et" i tıklamak sorunu tam olarak düzeltir mi?
Yanıtlar:
Veritabanının bazı sorguları çalıştırmak için kullandığı geçici disk alanı olduğu anlaşılıyor, bu yüzden sadece bu gerçekten yükselirse endişelenmelisiniz.
'Tabloyu en iyileştirme'yi sabit sürücünüzün birleştirmesiyle karşılaştırabilirsiniz.
Alıntı yaparım:
Her veritabanı, zaman içinde, optimum performans düzeyinde tutmak için bir tür bakım gerektirir . Silinmiş satırları temizleme, yeniden sıralama, sıkıştırma, dizin yollarını yönetme, birleştirme vb. Mysql'de OPTİMİZASYON ve diğer veritabanlarındaki diğer terimler olarak bilinir. Örneğin, IBM DB2 / 400 bunu FİZİKSEL DOSYA ÜYESİNİ REORGANİZE EDER.
Bu, arabanızdaki yağı değiştirmek veya bir ayar yapmak gibi bir şey. Gerçekten gerekmediğini düşünebilirsiniz, ancak bunu yaparak arabanız çok daha iyi çalışır, daha iyi gaz sarfiyatı elde edersiniz, vb. Çok fazla kilometre alan bir araba daha sık ayar gerektirir. Yoğun kullanım alan bir veritabanı aynı şeyi gerektirir. Çok fazla UPDATE ve / veya DELETE işlemi yapıyorsanız ve özellikle tablolarınız değişken uzunlukta sütunlara (VARCHAR, TEXT, vb.) Sahipseniz, ayarlarınızı güncel tutmanız gerekir.
Eğer phpMyAdmin
çağıran şeyden bahsediyorsanızoverhead
(sadece yedekten geri zaman sanki), o zaman aynı veri dosyası ideal boyutu için bir tablo veri dosyası göreli gerçek boyutu.
Performans nedenleriyle, MySQL
veri dosyalarını satırları sildikten veya güncelledikten sonra sıkıştırmaz.
Bu overhead
tablo taraması için kötüdür, yani sorgunuzun tüm tablo değerlerinin üzerinden geçmesi gerektiğinde daha fazla boş alana bakması gerekir.
Tablonuzu ve dizinlerinizi sıkıştıracak şekilde overhead
çalıştırarak kurtulabilirsiniz OPTIMIZE TABLE
.
Genel gider , bir tablonun Data_free öğesidir , yani Ayrılan ancak kullanılmayan bayt sayısı. SQL komutu GÖSTER TABLOSU ile bulabiliriz . Masanız için ayrılan boyuttaki boş alandır.
Optimize tablosu çok sorunlu olabilir. Örneğin, tablo bir sitede yoğun olarak kullanılıyorsa.
http://dev.mysql.com/doc/refman/5.1/en/optimize-table.html
Bir MyISAM veya ARCHIVE tablosunun büyük bir bölümünü sildikten veya değişken uzunlukta satırlara sahip bir MyISAM veya ARCHIVE tablosunda (VARCHAR, VARBINARY, BLOB veya TEXT sütunlarına sahip tablolar) birçok değişiklik yaptıktan sonra. Silinen satırlar bağlantılı bir listede tutulur ve sonraki INSERT işlemleri eski satır konumlarını yeniden kullanır. <
Bu davranışı doğruladığımı düşünüyorum. Ve kesinlikle çok faydalı olurdu.