View a markdown version of this page

Mempertahankan indeks - Amazon DocumentDB

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mempertahankan indeks

Bloat indeks

Amazon DocumentDB menggunakan Kontrol Multi-Version Konkurensi (MVCC) untuk mengelola transaksi bersamaan. Ketika dokumen dihapus atau diperbarui, versi sebelumnya tetap dalam koleksi dan indeks sebagai versi “mati”. Proses pengumpulan sampah secara otomatis mengambil kembali ruang dari versi mati ini untuk operasi di masa mendatang.

Indeks kembung terjadi ketika indeks koleksi menjadi lebih besar karena akumulasi entri indeks yang mati atau usang atau fragmentasi di dalam halaman. Persentase yang dilaporkan mewakili jumlah ruang indeks yang dapat digunakan oleh entri indeks di masa mendatang. Kembung ini menghabiskan ruang di cache buffer dan penyimpanan. Jika Anda ingin menghapus kembung, Anda perlu membangun kembali indeks.

Contoh: J alankan perintah berikut untuk menentukan penyimpanan yang tidak digunakan untuk indeks Anda:

db.coll.aggregate({$indexStats:{}});

Hasilnya terlihat mirip dengan ini:

{ "name" : "_id_", "key" : { "_id" : 1 }, "host" : "devbox-test.localhost.a2z.com:27317", "size" : NumberLong(827392), "accesses" : { "ops" : NumberLong(40000), "docsRead" : NumberLong(46049), "since" : ISODate("2025-04-03T21:44:51.251Z") }, "cacheStats" : { "blksRead" : NumberLong(264), "blksHit" : NumberLong(140190), "hitRatio" : 99.8121 }, "unusedStorageSize" : { "unusedSizeBytes" : 409600, "unusedSizePercent" : 49.51 } }

Anda dapat membangun kembali indeks tanpa downtime menggunakan perintah reIndex, yang memerlukan pemindaian seluruh koleksi. Lihat Pemeliharaan indeks menggunakan reIndex.

Pemeliharaan indeks menggunakan ReIndex

ReIndex adalah perintah yang digunakan untuk membangun kembali indeks. Hal ini biasanya digunakan ketika indeks telah rusak atau tidak efisien. Seiring waktu, indeks dapat mengakumulasi ruang yang tidak digunakan karena banyak pembaruan, penyisipan, atau penghapusan, yang menyebabkan kinerja menurun. Pengindeksan ulang membantu menghapus ruang yang tidak terpakai dan mengembalikan efisiensi indeks.

Pedoman ReIndex

  • ReIndex hanya didukung di Amazon DocumentDB 5.0 dan yang lebih tinggi

  • ReIndex selalu berjalan di latar belakang.

  • Amazon DocumentDB mendukung indeks ulang dari satu indeks di latar belakang, memungkinkan untuk beberapa pekerja. Indeks lama dapat digunakan oleh kueri saat proses reIndex sedang berjalan.

  • Amazon DocumentDB mendukung pengindeksan laporan kemajuan melalui CurrentTop. Anda dapat melihat tahapan pembuatan indeks yang mirip dengan tahapan pembuatan Indeks yang dilihat selama pembuatan indeks. Satu-satunya perbedaan adalah bahwa ReIndex selalu memiliki delapan tahap, terlepas dari apakah itu unik atau tidak. Tidak ada tahap “indeks bangunan: menyortir kunci 2".

  • ReIndex dapat berjalan bersamaan dengan perintah apa pun kecuali perintah terkait indeks pada koleksi yang sama: createIndexes, DropIndexes, CollMod, dan RenameCollection.

  • ReIndex saat ini tidak didukung untuk indeks teks, geospasial, vektor, dan sebagian.

Pembuatan ReIndex

Gunakan perintah berikut untuk membangun kembali indeks Anda:

db.runCommand({ reIndex: "collection-name", index: "index-name"})

Secara opsional, Anda juga dapat mengontrol jumlah pekerja yang ditugaskan untuk proses pembangunan kembali:

db.runCommand({ reIndex: "collection-name", index: "index-name", workers: number })

Untuk informasi khusus untuk mengelola indeks dengan Java, lihatManajemen indeks di Amazon DocumentDB dengan Java.