Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Properti indeks: tersembunyi
Amazon DocumentDB mendukung properti hidden indeks yang dimulai dengan Amazon DocumentDB 8.0.1.
Indeks tersembunyi tidak terlihat oleh perencana kueri dan tidak dapat digunakan untuk mendukung kueri. Dengan menyembunyikan indeks dari perencana, Anda dapat mengevaluasi dampak potensial dari penurunan indeks tanpa benar-benar menjatuhkannya. Jika dampaknya negatif, Anda dapat menampilkan indeks alih-alih harus membuat ulang indeks yang turun.
Pro hidden perti ini didukung pada semua jenis indeks, termasuk bidang tunggal, majemuk, multikey, teks, geospasial, dan indeks vektor.
Perilaku
Selain disembunyikan dari perencana, indeks tersembunyi sepenuhnya dipelihara dan ditegakkan. Contoh:
Jika indeks tersembunyi adalah indeks unik, indeks masih menerapkan batasan uniknya ke dokumen.
Jika indeks tersembunyi adalah indeks TTL, indeks masih kedaluwarsa dokumen.
Indeks tersembunyi disertakan dalam
listIndexesdandb.collection.getIndexes()hasil.Indeks tersembunyi diperbarui pada operasi penulisan ke koleksi dan terus menghabiskan ruang disk dan memori. Akibatnya, mereka termasuk dalam operasi statistik seperti
db.collection.stats()dan$indexStats.Menyembunyikan indeks yang tidak disembunyikan, atau menampilkan indeks tersembunyi, mengatur ulang indeks tersebut.
$indexStatsMenyembunyikan indeks yang sudah disembunyikan, atau menampilkan indeks yang sudah tidak disembunyikan, tidak diatur ulang.$indexStats
Pembatasan
Anda tidak dapat menyembunyikan
_idindeks.Anda tidak dapat menggunakan
cursor.hint()untuk memaksa penggunaan indeks tersembunyi.$mergegagal jika indeks unik yang diperlukan padaonbidang disembunyikan. Buat indeks terlihat sebelum dijalankan$merge.
Contoh
Buat indeks tersembunyi
Untuk membuat indeks dalam keadaan tersembunyi, gunakan db.collection.createIndex() metode dan atur hidden opsi ke true dalam definisi indeks.
Misalnya, operasi berikut membuat indeks naik tersembunyi di productId bidang:
db.collection.createIndex( { "productId": 1 }, { "name": "productId_1", "hidden": true } )
Untuk memverifikasi, jalankan db.collection.getIndexes() atau listIndexes pada koleksi. Indeks tersembunyi termasuk "hidden": true dalam definisinya.
db.collection.getIndexes() [ { "v": 4, "key": { "_id": 1 }, "name": "_id_" }, { "v": 4, "key": { "productId": 1 }, "name": "productId_1", "hidden": true } ]
Opsi indeks hanya hidden dikembalikan jika nilainya adatrue.
Sembunyikan indeks yang ada
Gunakan collMod perintah untuk menyembunyikan indeks yang ada. Identifikasi indeks baik dengan name atau dengan itukeyPattern, dan setel hidden ketrue.
Contoh berikut menyembunyikan indeks berdasarkan nama.
db.runCommand({ collMod: "collection", index: { name: "productId_1", // Specify the index name hidden: true } })
Anda juga dapat mengidentifikasi indeks dengan pola kuncinya.
db.runCommand({ collMod: "collection", index: { keyPattern: { productId: 1 }, // Specify the index key specification document hidden: true } })
Menampilkan indeks yang ada
Untuk membuat indeks tersembunyi terlihat lagi, gunakan collMod perintah dengan hidden set tofalse.
db.runCommand({ collMod: "collection", index: { name: "productId_1", hidden: false } })
Karena indeks sepenuhnya dipertahankan saat disembunyikan, indeks segera tersedia untuk digunakan setelah tidak disembunyikan.