cari

Rumah  >  Soal Jawab  >  teks badan

使用MongoDB如何改善数据空洞

数据空洞指的是,一个表经历了频繁的update和delete后,其数据文件的尺寸大于其数据实际尺寸。比如show dbs看到一个库为400G,导出再导入后就只有250G。

PHPzPHPz2763 hari yang lalu832

membalas semua(1)saya akan balas

  • PHP中文网

    PHP中文网2017-04-22 08:58:10

    Tidak perlu mengeksport dan kemudian mengimport, menggunakan repairDatabase atau compact akan memampatkan data. Tetapi mereka mempunyai kesan ke atas prestasi semasa operasi.

    Arahan repairDatabase memampatkan semua koleksi dalam pangkalan data Ia sama dengan menjalankan arahan padat pada setiap koleksi secara inpidually.

    Perlu diambil perhatian bahawa compact tidak akan melepaskan ruang cakera yang telah digunakan seperti repairDatabase, tetapi permintaan cakera baharu akan menggunakan ruang yang diperuntukkan. Perkara lain yang perlu diperhatikan ialah kedua-dua arahan memerlukan ruang tambahan, lihat bahagian penggunaan batang. Ini bermakna jika ruang cakera penuh, kedua-dua arahan ini tidak akan digunakan. Walau bagaimanapun, pada masa ini, anda boleh menyegerakkan semula nod hamba dan membina semula data cakera.

    Jika anda menggunakan repairDatabase atau compact dalam set replika, sebaiknya gunakan kaedah rolling. Kaedah rolling adalah dengan mula-mula mengeluarkan nod sekunder dan defragment cakera. Kemudian ulangi langkah di atas pada semua nod hamba. Akhir sekali, turunkan bahagian utama dan defragment cakera padanya. Ini boleh mengelakkan kesan operasi ini pada perkhidmatan dalam talian.

    Adalah disyorkan untuk menggunakan usePowerOf2Sizes untuk membenarkan MongoDB menggunakan cakera dengan lebih cekap di bawah kemas kini dan pemadaman yang kerap, kerana setiap aplikasi dan keluaran adalah kuasa 2 dalam saiz.

    balas
    0
  • Batalbalas