

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

# Mempertahankan indeks
<a name="maintaining-indexes"></a>

## Bloat indeks
<a name="maintaining-indexes-bloat"></a>

Amazon DocumentDB Multi-Version menggunakan Concurrency Control (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 merebut kembali ruang dari versi mati ini untuk operasi masa depan.

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

**Contoh:** Jalankan 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
<a name="maintaining-indexes-reindex"></a>

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

**Pedoman ReIndex**
+ ReIndex hanya didukung di Amazon DocumentDB 5.0 dan di atasnya
+ ReIndex selalu berjalan di latar belakang.
+ Amazon DocumentDB mendukung reindex indeks tunggal di latar belakang, memungkinkan untuk beberapa pekerja. Indeks lama dapat digunakan oleh kueri saat proses reIndex berjalan.
+ Amazon DocumentDB mendukung laporan kemajuan pengindeksan melalui CurrenTop. 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: kunci pengurutan 2".
+ ReIndex dapat berjalan bersamaan dengan perintah apa pun kecuali perintah terkait indeks pada koleksi yang sama: createIndexes, dropIndex, collMod, dan RenameCollection.
+ ReIndex saat ini tidak didukung untuk indeks teks, geospasial, vektor, dan sebagian.

**Membangun 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, lihat [Manajemen indeks di Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/devguide/index-management-java.html) dengan Java.