Indeks sangat penting dalam database apa pun, dan tidak ada bedanya dengan MongoDB. Dengan menggunakan Indeks, melakukan kueri di MongoDB menjadi lebih efisien.
Jika Anda memiliki koleksi dengan ribuan dokumen tanpa indeks, dan kemudian Anda melakukan kueri untuk menemukan dokumen tertentu, maka dalam kasus seperti itu MongoDB perlu memindai seluruh koleksi untuk menemukan dokumen tersebut. Tetapi jika Anda memiliki indeks, MongoDB akan menggunakan indeks ini untuk membatasi jumlah dokumen yang harus dicari dalam koleksi.
Indeks adalah kumpulan data khusus yang menyimpan sebagian dari data koleksi. Karena datanya parsial, menjadi lebih mudah untuk membaca data ini. Himpunan parsial ini menyimpan nilai bidang tertentu atau sekumpulan bidang yang diurutkan berdasarkan nilai bidang.
Dalam tutorial ini, Anda akan belajar -
- Memahami Dampak Indeks
- Cara Membuat Indeks: createIndex ()
- Cara Menemukan Indeks: getindexes ()
- Cara Menghapus Indeks: dropindex ()
Memahami Dampak Indeks
Sekarang meskipun dari pendahuluan kita telah melihat bahwa indeks bagus untuk kueri, tetapi memiliki terlalu banyak indeks dapat memperlambat operasi lain seperti operasi Sisipkan, Hapus, dan Perbarui.
Jika ada operasi penyisipan, penghapusan, dan pembaruan yang sering dilakukan pada dokumen, indeks harus sering berubah, yang hanya akan menjadi overhead untuk pengumpulan.
Contoh di bawah ini menunjukkan contoh nilai bidang apa yang bisa menjadi indeks dalam koleksi. Indeks bisa didasarkan hanya pada satu bidang dalam koleksi, atau dapat didasarkan pada beberapa bidang dalam koleksi.
Pada contoh di bawah ini, Employeeid "1" dan EmployeeCode "AA" digunakan untuk mengindeks dokumen dalam koleksi. Jadi, saat pencarian kueri dilakukan, indeks ini akan digunakan untuk menemukan dokumen yang diperlukan dalam koleksi dengan cepat dan efisien.
Jadi, meskipun kueri penelusuran didasarkan pada EmployeeCode "AA", dokumen itu akan dikembalikan.
Cara Membuat Indeks: createIndex ()
Membuat Indeks di MongoDB dilakukan dengan menggunakan metode " createIndex ".
Contoh berikut menunjukkan bagaimana menambahkan indeks ke koleksi. Mari kita asumsikan bahwa kita memiliki koleksi Karyawan yang sama yang memiliki nama Bidang "Employeeid" dan "EmployeeName".
db.Employee.createIndex({Employeeid:1})
Penjelasan Kode:
- The createIndex metode yang digunakan untuk membuat indeks didasarkan pada "EmployeeID" dokumen.
- Parameter '1' menunjukkan bahwa ketika indeks dibuat dengan nilai Field "Employeeid", mereka harus diurutkan dalam urutan menaik. Harap perhatikan bahwa ini berbeda dari bidang _id (Bidang id digunakan untuk mengidentifikasi secara unik setiap dokumen dalam koleksi) yang dibuat secara otomatis dalam koleksi oleh MongoDB. Dokumen sekarang akan diurutkan sesuai dengan Employeeid dan bukan kolom _id.
Jika perintah berhasil dijalankan, Output berikut akan ditampilkan:
Keluaran:
- The numIndexesBefore: 1 menunjukkan jumlah nilai Bidang (Bidang aktual dalam koleksi) yang ada di indeks sebelum perintah dijalankan. Ingatlah bahwa setiap koleksi memiliki bidang _id yang juga dihitung sebagai nilai Bidang ke indeks. Karena bidang indeks _id adalah bagian dari koleksi saat pertama kali dibuat, nilai numIndexesBefore adalah 1.
- NumIndexesAfter: 2 menunjukkan jumlah nilai Field yang ada di indeks setelah perintah dijalankan.
- Di sini, keluaran "ok: 1" menentukan bahwa operasi berhasil, dan indeks baru ditambahkan ke koleksi.
Kode di atas menunjukkan cara membuat indeks berdasarkan satu nilai bidang, tetapi seseorang juga dapat membuat indeks berdasarkan beberapa nilai bidang.
Contoh berikut menunjukkan bagaimana ini bisa dilakukan;
db.Employee.createIndex({Employeeid:1, EmployeeName:1])
Penjelasan Kode:
- Metode createIndex sekarang memperhitungkan beberapa nilai Bidang yang sekarang akan menyebabkan indeks dibuat berdasarkan "Employeeid" dan "EmployeeName". Employeeid: 1 dan EmployeeName: 1 menunjukkan bahwa indeks harus dibuat pada 2 nilai bidang ini dengan: 1 yang menunjukkan bahwa indeks harus dalam urutan menaik.
Cara Menemukan Indeks: getindexes ()
Menemukan Indeks di MongoDB dilakukan dengan menggunakan metode "getIndexes" .
Contoh berikut menunjukkan bagaimana ini bisa dilakukan;
db.Employee.getIndexes()
Penjelasan Kode:
- Metode getIndexes digunakan untuk menemukan semua indeks dalam sebuah koleksi.
Jika perintah berhasil dijalankan, Output berikut akan ditampilkan:
Keluaran:
- Output mengembalikan dokumen yang hanya menunjukkan bahwa ada 2 indeks dalam collection yaitu bidang _id, dan yang lainnya adalah bidang Id karyawan. The: 1 menunjukkan bahwa nilai bidang dalam indeks dibuat dalam urutan menaik.
Cara Menghapus Indeks: dropindex ()
Menghapus Indeks di MongoDB dilakukan dengan menggunakan metode dropIndex.
Contoh berikut menunjukkan bagaimana ini bisa dilakukan;
db.Employee.dropIndex(Employeeid:1)
Penjelasan Kode:
- Metode dropIndex mengambil nilai Bidang wajib yang perlu dihapus dari Indeks.
Jika perintah berhasil dijalankan, Output berikut akan ditampilkan:
Keluaran:
- NIndexesWas: 3 menunjukkan jumlah nilai Field yang ada di indeks sebelum perintah dijalankan. Ingatlah bahwa setiap koleksi memiliki bidang _id yang juga dihitung sebagai nilai Bidang ke indeks.
- Output ok: 1 menentukan bahwa operasi berhasil, dan bidang "Employeeid" dihapus dari indeks.
Untuk menghapus semua indeks sekaligus dalam koleksi, seseorang dapat menggunakan perintah dropIndexes.
Contoh berikut menunjukkan bagaimana ini bisa dilakukan.
db.Employee.dropIndex()
Penjelasan Kode:
- Metode dropIndexes akan menghapus semua indeks kecuali indeks _id.
Jika perintah berhasil dijalankan, Output berikut akan ditampilkan:
Keluaran:
- NIndexesWas: 2 menunjukkan jumlah nilai Field yang ada di indeks sebelum perintah dijalankan.
- Ingatlah lagi bahwa setiap koleksi memiliki bidang _id yang juga dihitung sebagai nilai Bidang ke indeks, dan itu tidak akan dihapus oleh MongoDB dan itulah yang ditunjukkan oleh pesan ini.
- Output ok: 1 menentukan bahwa operasi berhasil.
Ringkasan
- Menentukan indeks penting untuk pencarian dokumen yang lebih cepat dan efisien dalam sebuah koleksi.
- Indeks dapat dibuat dengan menggunakan metode createIndex. Indeks dapat dibuat hanya pada satu bidang atau beberapa nilai bidang.
- Indeks dapat ditemukan dengan menggunakan metode getIndexes.
- Indeks dapat dihapus dengan menggunakan dropIndex untuk indeks tunggal atau dropIndex untuk menghapus semua indeks.