File ibdata saya sangat besar, setidaknya bagi saya sepertinya sangat besar. Apakah ini berlebihan atau tidak seburuk itu?
-rw-rw---- 1 mysql mysql 15G Apr 18 10:11 ibdata1
File ibdata saya sangat besar, setidaknya bagi saya sepertinya sangat besar. Apakah ini berlebihan atau tidak seburuk itu?
-rw-rw---- 1 mysql mysql 15G Apr 18 10:11 ibdata1
Jawaban:
Jika Anda menjalankan show table status
di atas meja dan Data_free
bidang itu merupakan sebagian besar ibdata1
ukuran file Anda , maka Anda mungkin memiliki banyak ruang kosong. Banyak memasukkan / menghapus akan membuat masalah. Jika itu adalah kasus dan penyisipan sementara dan penghapusan membuat sebagian besar data Anda, maka Anda memiliki kasus yang baik untuk file per tabel.
Tapi itu bukan "ya" otomatis. Ada banyak pembicaraan di dunia tentang fragmentasi internal di dalam file InnoDB, tetapi menempatkannya ke dalam sistem file sebagai file per tabel hanya memindahkan fragmentasi Anda ke tingkat sistem file, bukan ke tingkat basis data.
Pikirkan file InnoDB Anda sebagai sistem file daripada file. Jika Anda memiliki banyak file, Anda membutuhkan sistem file yang besar.
Untuk sebagian besar, filesystem melakukannya dengan sangat baik dalam meningkatkan skala untuk menangani terabyte data dan jumlah file yang tak terhitung. Kadang-kadang mereka mengalami masalah dengan pengindeksan yang buruk (misalnya, batasan jumlah file dalam direktori sebelum dampak kinerja), tetapi sebagian besar sistem file modern dapat berjalan dengan baik ke kisaran terabyte.
InnoDB berfungsi dengan cara yang sama. Ukuran file data Anda bisa sangat besar ... dan seperti filesystem besar, yang dapat menyajikan masalah dengan membuat cadangan data Anda. Namun, sama seperti membelah sistem file Anda menjadi beberapa partisi tidak membantu dengan masalah ini, juga tidak mencoba memanipulasi innodb. Meskipun Anda dapat menggunakan innodb_file_per_table , saya jarang merekomendasikannya.
Sama seperti sistem file Anda, jawaban yang lebih baik adalah mengetahui batasan secara internal dan bekerja di dalamnya. Memahami indeks dan menerapkannya dengan tepat. Jangan berusaha memisahkan InnoDB, itu tidak dimaksudkan untuk itu.
Karena saya berjuang untuk menyampaikan konsep secara konstruktif, inilah bacaan cepat bahwa kata-kata ini lebih baik daripada yang saya bisa: Terabytes bukan data besar, petabytes adalah .
Saya ingat slide pemasaran MySQL yang benar-benar sangat tua di mana pelanggan menjalankan data warehouse dengan beberapa terabyte. Bertahun-tahun yang lalu. InnoDB atau MyISAM, keduanya akan berfungsi. Ini merupakan standar dari hal-hal MySQL.
Jangan keringat basis data 15GB.
InnoDB free: 7364608 kB
file ibdata tidak menyusut - jika Anda baru saja menjatuhkan beberapa tabel atau menghapus banyak baris - innodb di konfigurasi Anda tidak akan melepaskan ruang kosong kembali ke sistem file. saya akan menyarankan Anda:
dengan cara ini Anda akan dapat memperoleh kembali ruang setiap kali Anda menjatuhkan tabel / database innodb - file idb terkait akan segera dihapus.