Indeks mendukung eksekusi kueri yang efisien di MongoDB. Tanpa indeks, MongoDB harus melakukan pemindaian koleksi, mis. e. pindai setiap dokumen dalam koleksi, untuk memilih dokumen yang cocok dengan pernyataan kueri. Jika ada indeks yang sesuai untuk kueri, MongoDB dapat menggunakan indeks untuk membatasi jumlah dokumen yang harus diperiksa Show
Indeks adalah struktur data khusus yang menyimpan sebagian kecil kumpulan data koleksi dalam bentuk yang mudah dilintasi. Indeks menyimpan nilai bidang tertentu atau kumpulan bidang, diurutkan berdasarkan nilai bidang. Pengurutan entri indeks mendukung pencocokan kesetaraan yang efisien dan operasi kueri berbasis rentang. Selain itu, MongoDB dapat mengembalikan hasil yang diurutkan dengan menggunakan pengurutan dalam indeks Diagram berikut mengilustrasikan kueri yang memilih dan mengurutkan dokumen yang cocok menggunakan indeks Pada dasarnya, indeks di MongoDB mirip dengan indeks di sistem basis data lainnya. MongoDB mendefinisikan indeks pada level dan mendukung indeks pada bidang atau subbidang apa pun dari dokumen dalam kumpulan MongoDB Default_id IndeksMongoDB membuat di lapangan selama pembuatan koleksi. Indeks CatatanDi , jika Anda tidak menggunakan bidang Buat Indeks➤ Gunakan menu tarik-turun Pilih bahasa Anda di kanan atas untuk mengatur bahasa contoh di halaman ini []Indeks MongoDB menggunakan struktur data B-tree Nama IndeksNama default untuk indeks adalah gabungan dari kunci yang diindeks dan setiap arah kunci dalam indeks ( i. e. 1 atau -1) menggunakan garis bawah sebagai pemisah. Misalnya, indeks yang dibuat pada _3 memiliki nama 4Anda dapat membuat indeks dengan nama khusus, seperti nama yang lebih mudah dibaca manusia daripada nama default. Misalnya, pertimbangkan aplikasi yang sering menanyakan koleksi 5 untuk mengisi data pada inventaris yang ada. Metode berikut membuat indeks pada _7 dan 8 bernama 9 _Anda dapat melihat nama indeks menggunakan metode ini. Anda tidak dapat mengganti nama indeks setelah dibuat. Sebagai gantinya, Anda harus menghapus dan membuat ulang indeks dengan nama baru Jenis IndeksMongoDB menyediakan sejumlah jenis indeks yang berbeda untuk mendukung jenis data dan kueri tertentu Bidang TunggalSelain indeks Untuk indeks bidang tunggal dan operasi pengurutan, tata urutan (mis. e. naik atau turun) kunci indeks tidak masalah karena MongoDB dapat melintasi indeks di kedua arah Lihat Indeks Bidang Tunggal dan untuk informasi selengkapnya tentang indeks bidang tunggal Indeks SenyawaMongoDB juga mendukung indeks yang ditentukan pengguna di berbagai bidang, mis. e. indeks majemuk Urutan bidang yang tercantum dalam indeks majemuk memiliki arti penting. Misalnya, jika indeks majemuk terdiri dari 2, indeks akan diurutkan terlebih dahulu dengan 3 dan kemudian, dalam setiap nilai 3, diurutkan dengan 5Untuk indeks majemuk dan operasi pengurutan, urutan pengurutan (mis. e. naik atau turun) dari kunci indeks dapat menentukan apakah indeks dapat mendukung operasi pengurutan. Lihat untuk informasi selengkapnya tentang pengaruh urutan indeks pada hasil dalam indeks majemuk Lihat juga
Indeks MultikunciMongoDB menggunakan indeks multikey untuk mengindeks konten yang disimpan dalam array. Jika Anda mengindeks bidang yang menyimpan nilai larik, MongoDB membuat entri indeks terpisah untuk setiap elemen larik. Indeks multikunci ini memungkinkan kueri untuk memilih dokumen yang berisi larik dengan mencocokkan elemen atau elemen larik. MongoDB secara otomatis menentukan apakah akan membuat indeks multikunci jika bidang yang diindeks berisi nilai larik; Lihat Indeks Multikunci dan Batas Indeks Multikunci untuk informasi selengkapnya tentang indeks multikunci Indeks GeospasialUntuk mendukung kueri data koordinat geospasial yang efisien, MongoDB menyediakan dua indeks khusus. Indeks 2d yang menggunakan geometri planar saat mengembalikan hasil dan indeks 2dsphere yang menggunakan geometri bola untuk mengembalikan hasil Lihat _6 Indeks Internal untuk pengenalan tingkat tinggi indeks geospasialIndeks Pencarian TeksUntuk data yang dihosting di MongoDB Atlas, Anda dapat mendukung pencarian teks lengkap dengan indeks Pencarian Atlas. Untuk mempelajari lebih lanjut, lihat Untuk penerapan yang dikelola sendiri (non-Atlas), MongoDB menyediakan tipe indeks 7 yang mendukung pencarian konten string dalam kumpulan. Untuk mempelajari lebih lanjut tentang indeks teks yang dikelola sendiri, lihatIndeks HashUntuk mendukung , MongoDB menyediakan tipe indeks hash, yang mengindeks hash dari nilai suatu bidang. Indeks ini memiliki distribusi nilai yang lebih acak di sepanjang rentangnya, tetapi hanya mendukung pencocokan kesetaraan dan tidak dapat mendukung kueri berbasis rentang Indeks BerkelompokMulai di MongoDB 5. 3, Anda dapat membuat koleksi dengan a. Koleksi yang dibuat dengan indeks berkerumun disebut koleksi berkerumun Lihat Properti IndeksIndeks UnikProperti unik untuk indeks menyebabkan MongoDB menolak nilai duplikat untuk bidang yang diindeks. Selain batasan unik, indeks unik secara fungsional dapat dipertukarkan dengan indeks MongoDB lainnya Indeks ParsialIndeks parsial hanya mengindeks dokumen dalam kumpulan yang memenuhi ekspresi filter yang ditentukan. Dengan mengindeks subkumpulan dokumen dalam kumpulan, indeks parsial memiliki persyaratan penyimpanan yang lebih rendah dan mengurangi biaya kinerja untuk pembuatan dan pemeliharaan indeks Indeks parsial menawarkan superset fungsionalitas indeks jarang dan harus lebih disukai daripada indeks jarang Indeks JarangProperti jarang indeks memastikan bahwa indeks hanya berisi entri untuk dokumen yang memiliki bidang yang diindeks. Indeks melompati dokumen yang tidak memiliki bidang yang diindeks Anda dapat menggabungkan opsi indeks jarang dengan opsi indeks unik untuk mencegah penyisipan dokumen yang memiliki nilai duplikat untuk bidang yang diindeks dan melewati pengindeksan dokumen yang tidak memiliki bidang yang diindeks Indeks TTLIndeks TTL adalah indeks khusus yang dapat digunakan MongoDB untuk secara otomatis menghapus dokumen dari koleksi setelah jangka waktu tertentu. Ini sangat ideal untuk jenis informasi tertentu seperti data peristiwa yang dihasilkan mesin, log, dan informasi sesi yang hanya perlu bertahan dalam database untuk waktu yang terbatas. Lihat. Kedaluwarsa Data dari Koleksi dengan Mengatur TTL untuk instruksi implementasi Indeks TersembunyiBaru di versi 4. 4 Indeks tersembunyi tidak terlihat oleh perencana kueri dan tidak dapat digunakan untuk mendukung kueri Dengan menyembunyikan indeks dari perencana, pengguna dapat mengevaluasi potensi dampak penurunan indeks tanpa benar-benar menghapus indeks. Jika pengaruhnya negatif, pengguna dapat memperlihatkan indeks alih-alih harus membuat ulang indeks yang dijatuhkan. Dan karena indeks dipertahankan sepenuhnya saat disembunyikan, indeks segera tersedia untuk digunakan setelah ditampilkan Kecuali untuk indeks Penggunaan IndeksIndeks dapat meningkatkan efisiensi operasi baca. Tutorial Menganalisis Kinerja Kueri memberikan contoh statistik eksekusi kueri dengan dan tanpa indeks Untuk informasi tentang bagaimana MongoDB memilih indeks yang akan digunakan, lihat Indeks dan KolasiCollation memungkinkan pengguna untuk menentukan aturan khusus bahasa untuk perbandingan string, seperti aturan huruf dan tanda aksen Untuk menggunakan indeks untuk perbandingan string, operasi juga harus menentukan pemeriksaan yang sama. Artinya, indeks dengan collation tidak dapat mendukung operasi yang melakukan perbandingan string pada field yang diindeks jika operasi menentukan collation yang berbeda. Misalnya, koleksi 9 memiliki indeks pada bidang string 0 dengan lokal pemeriksaan 1
Operasi kueri berikut, yang menentukan susunan yang sama dengan indeks, dapat menggunakan indeks
Namun, operasi kueri berikut, yang secara default menggunakan penyusun biner "sederhana", tidak dapat menggunakan indeks
Untuk indeks majemuk di mana kunci awalan indeks bukan string, larik, dan dokumen yang disematkan, operasi yang menentukan susunan berbeda masih dapat menggunakan indeks untuk mendukung perbandingan pada kunci awalan indeks Misalnya, koleksi 9 memiliki indeks majemuk pada bidang numerik 5 dan 4 dan bidang string 0;
Operasi berikut, yang menggunakan _7 binary collation untuk perbandingan string, dapat menggunakan indeks
Operasi berikut, yang menggunakan susunan biner _7 untuk perbandingan string pada bidang 0 yang diindeks, dapat menggunakan indeks untuk memenuhi hanya bagian 0 dari kueri
Untuk informasi lebih lanjut tentang collation, lihat halaman referensi collation Indeks berikut hanya mendukung perbandingan biner sederhana dan tidak mendukung
Kueri TercakupKetika kriteria kueri dan kueri hanya menyertakan bidang yang diindeks, MongoDB mengembalikan hasil langsung dari indeks tanpa memindai dokumen apa pun atau memasukkan dokumen ke dalam memori. Kueri tertutup ini bisa sangat efisien Untuk informasi selengkapnya tentang kueri tercakup, lihat Persimpangan IndeksMongoDB dapat menggunakan persimpangan indeks untuk memenuhi kueri. Untuk kueri yang menentukan kondisi kueri majemuk, jika satu indeks dapat memenuhi sebagian dari kondisi kueri, dan indeks lain dapat memenuhi bagian lain dari kondisi kueri, maka MongoDB dapat menggunakan perpotongan dua indeks untuk memenuhi kueri. Apakah penggunaan indeks majemuk atau penggunaan persimpangan indeks lebih efisien tergantung pada kueri dan sistem tertentu Untuk detail tentang persimpangan indeks, lihat Persimpangan Indeks BatasanPembatasan tertentu berlaku untuk indeks, seperti panjang kunci indeks atau jumlah indeks per koleksi. Lihat detailnya Pertimbangan TambahanMeskipun indeks dapat meningkatkan kinerja kueri, indeks juga menghadirkan beberapa pertimbangan operasional. Lihat untuk informasi lebih lanjut Aplikasi mungkin mengalami penurunan kinerja selama pembuatan indeks, termasuk akses baca/tulis terbatas ke koleksi. Untuk informasi selengkapnya tentang proses pembuatan indeks, lihat , termasuk bagian Beberapa driver mungkin menentukan indeks, menggunakan 1 daripada 2 sebagai spesifikasi. Ini tidak mempengaruhi indeks yang dihasilkan
Bagaimana cara memeriksa indeks di PHP?Fungsi PHP array_key_exists()
. Fungsi mengembalikan true jika kunci yang ditentukan ditemukan dalam array jika tidak mengembalikan false.
Bagaimana check array diatur atau tidak di PHP?Fungsi is_array() memeriksa apakah suatu variabel adalah array atau bukan. Fungsi ini mengembalikan true (1) jika variabelnya adalah array, jika tidak mengembalikan false/nothing.
Bagaimana Anda memeriksa apakah suatu indeks valid dalam array?Untuk memeriksa apakah ada indeks array, akses array pada indeks tertentu dan periksa apakah hasilnya tidak sama dengan undefined . Jika hasilnya tidak sama dengan undefined indeks array ada.
Bagaimana menemukan indeks array di PHP?Kita bisa mendapatkan indeks array dengan menggunakan fungsi array_search() . Fungsi ini digunakan untuk mencari elemen yang diberikan. |