İbdata dosyam çok büyük, en azından bana çok büyük görünüyor. Bu aşırı mı yoksa o kadar da kötü değil mi?
-rw-rw---- 1 mysql mysql 15G Apr 18 10:11 ibdata1
İbdata dosyam çok büyük, en azından bana çok büyük görünüyor. Bu aşırı mı yoksa o kadar da kötü değil mi?
-rw-rw---- 1 mysql mysql 15G Apr 18 10:11 ibdata1
Yanıtlar:
show table status
Bir tabloda çalışırsanız ve Data_free
alan ibdata1
dosyanızın boyutunun büyük çoğunluğunu oluşturuyorsa , boşa çok fazla alanınız olabilir. Çok fazla ekleme / silme sorunu yaratacaktır. Durum buysa ve geçici eklemeler ve silme işlemleri verilerinizin çoğunu oluşturuyorsa, tablo başına dosya için iyi bir durumunuz vardır.
Ancak bu otomatik bir "evet" değil. Dünyada InnoDB dosyalarının içindeki iç parçalanma hakkında çok fazla konuşma var, ancak bunları tablo başına dosya olarak bir dosya sistemine koymak, parçalanmanızı veritabanı düzeyi yerine dosya sistemi düzeyine taşıyor.
InnoDB dosyanızı bir dosya yerine bir dosya sistemi olarak düşünün. Çok fazla dosyanız varsa, büyük bir dosya sistemine ihtiyacınız olacaktır.
Çoğunlukla, dosya sistemleri terabaytlarca veriyi ve anlatılmamış sayıda dosyayı işlemek için ölçeklendirme konusunda gerçekten başarılıdır. Bazen zayıf indeksleme ile ilgili sorunlarla karşılaşırlar (örneğin, bir performans etkisinden önce bir dizindeki dosya sayısını sınırlar), ancak modern dosya sistemi çoğunlukla terabayt aralığına iyi bir şekilde kayabilir.
InnoDB aynı şekilde çalışır. Veri dosyanızın boyutu çok büyük olabilir ... ve büyük dosya sistemleri gibi verilerinizi yedeklemeyle ilgili sorunlar da ortaya çıkabilir. Ancak, dosya sisteminizi birden çok bölüme ayırmak da bu soruna yardımcı olmuyorsa, innodb'u da değiştirmeye çalışmaz. İnnodb_file_per_table kullanabilirsiniz , ancak nadiren tavsiye ederim.
Dosya sisteminizde olduğu gibi, daha iyi yanıt dahili sınırları bilmek ve bu konuda çalışmaktır. Dizinleri anlayın ve uygun şekilde uygulayın. InnoDB'yi bölmeye çalışmak için çalışma, bunun için değil.
Kavramın yapıcı bir şekilde aktarılması için mücadele ettiğim için, bu kelimelerin benden daha iyi olduğunu hızlı bir şekilde okuyorum: Terabaytlar büyük veri değil, petabaytlar .
Müşterinin bazı terabaytlarla bir veri ambarı çalıştırdığı gerçekten eski bir MySQL pazarlama slaydını hatırlıyorum. Yıllar önce. InnoDB veya MyISAM, ikisi de işe yarar. Bu standart raf dışı MySQL şeyleridir.
15 GB'lık bir veritabanını terlemeyin.
InnoDB free: 7364608 kB
ibdata dosyaları küçülmez - yakın zamanda bazı tabloları düşürdüyseniz veya çok sayıda satır kaldırdıysanız - config'inizdeki innodb, boş alanı dosya sistemine bırakmayacaktır. size öneririm:
bu şekilde innodb table / database'i her bıraktığınızda alanı geri kazanabileceksiniz - ilişkili idb dosyaları derhal kaldırılacaktır.