Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 3517|Yanıt: 1

[İpucu] [Aktar] MySQL İleriye: tablo komutunu optimize et

[Bağlantıyı kopyala]
Yayınlandı 17.06.2023 11:40:34 | | |
Mysql kullandığınızda, bir tablo çok fazla veriyi silse de, tablodaki veri dosyaları ve indeks dosyalarının garip derecede küçük olduğunu görebilirsiniz. Bunun nedeni, mysql'in verileri silerken (özellikle Metin ve BLOB) birçok veri boşluğu bırakmasıdır; bu da orijinal verinin alanını kaplar, böylece dosya boyutu değişmez. Bu delikler gelecekte veri eklendiğinde tekrar kullanılabilir ve tabii ki orada kalabilirler. Bu delik sadece depolama maliyetini artırmakla kalmaz, aynı zamanda veri parçalanması nedeniyle tablonun tarama verimliliğini de düşürür.

Kullanım Senaryoları:Tablonun büyük bir bölümünü sildiyseniz ya da değişken uzunluklu satırlara sahip bir tabloda (VARCHAR, BLOB veya TEXT sütunları olan) çok sayıda değişiklik yaptıysanız, OPTIMIZE TABLE kullanmalısınız. Silinen kayıtlar bağlı listede tutulur ve sonraki INSERT işlemleri eski kayıt konumunu tekrar kullanır. OPTIMIZE TABLE kullanarak kullanılmayan alanı yeniden ayıklayabilir ve veri dosyalarının parçalarını düzenleyebilirsiniz. [Kütüphanenizden büyük miktarda veri silindiğinde, veri dosyası boyutunun azalmadığını görebilirsiniz. Bu, silme işleminden sonra veri dosyasında kalan parçalanmadan kaynaklanır.


Çoğu ortamda OPTIMIZE TABLE çalıştırmanıza hiç gerek yok. Değişken uzunluklu satırlarda çok fazla güncelleme yapsanız bile, onları sık sık çalıştırmanıza gerek yok, haftada bir ya da ayda bir kez, sadece belirli tablolar için.

OPTIMIZE TABLE yalnızca MyISAM, BDB ve InnoDB tabloları için çalışır.

BDB tabloları için, OPTIMIZE TABLOSU şu anda ANALYZE TABLE'a eşlenmiştir. InnoDB tabloları için, OPTIMIZE TABLOSU, ALTER TABLE ile eşlenir ve bu da tabloyu yeniden oluşturur. Operasyonları yeniden inşa edin, indeks istatistiklerini güncelleye ve kümelenmiş indekslerde kullanılmayan alanı boşaltın.

Not: MySQL, OPTIMIZE TABLE çalıştırma sırasında tabloyu kilitler.

Myisam için doğrudan optimize tablosunu table.name,InnoDB motoru olduğunda, "Tablo optimize etmeyi desteklemiyor, bunun yerine yeniden yarat + analiz yapıyor" diyecektir ve normal koşullarda, myisam'dan innodb'ye dönüştürürseniz, dönüştürmek için alter table table.name engine='innodb' kullanırsınız ve bunu optimizasyon için de kullanabilirsiniz.Bu nedenle, InnoDB motoru olduğunda, optimizasyon için optimize etmek yerine alter table table.name engine='innodb' kullanabiliriz

Öncesi ve sonrası etkilerini görüntülemek için, '[table_name]' gibi [veritabanı]'dan tablo durumunu göster gibi göster tablo durum komutunu kullanabilirsiniz; Dönüş sonucundaki data_free, boşluk tarafından kaplanan depolama alanıdır.

MySQL zamanlı toplu kontrol tablosu onarımı ve tablo optimize etme tablosunu optimize eden shell betiği şöyledir:

Özgün:

Bağlantı girişi görünür.
Bağlantı girişi görünür.




Önceki:SQLMAP sızma aracı SQL enjeksiyon testi kullanın
Önümüzdeki:Windows test ortamında Consul kurulum eğitimi
 Ev sahibi| Yayınlandı 6.07.2023 18:54:17 |
--Denetim listesi


-- Tabloyu düzelt


-- Tabloyu optimize et


Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com