MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bagaimana MongoDB Memilih Paket Kandidat

Jika kueri dapat dipenuhi oleh beberapa indeks yang ditentukan dalam koleksi, MongoDB akan menguji semua indeks yang berlaku secara paralel. Indeks pertama yang dapat mengembalikan 101 hasil akan dipilih oleh perencana kueri. Ada aspek lain untuk pemilihan indeks, tetapi secara umum ini benar sesuai dengan Pengoptimalan Kueri dokumentasi.

Metode pemilihan indeks ini dapat memilih indeks sub-optimal. Ini karena menurut pandangan MongoDB, Anda memiliki banyak indeks yang menggambarkan hal yang sama. Untuk mengurangi pemilihan indeks sub-optimal yang Anda amati, Anda dapat melakukan:

  1. Hapus semua indeks lain yang menurut Anda kurang optimal.

    Ini untuk memastikan bahwa perencana kueri tidak memiliki pilihan lain kecuali memilih indeks yang Anda sesuaikan untuk kueri Anda.

  2. Gunakan hint() metode

    hint() memungkinkan Anda untuk secara eksplisit memberi tahu MongoDB untuk menggunakan indeks yang ditentukan untuk kueri. Misalnya:

    db.tasks.find(...).hint({project: 1, created_by: 1})
    

    Silakan lihat https://docs.mongodb.com/v2. 6/reference/operator/meta/hint/ untuk informasi lebih lanjut mengenai hint() .

Nuansa lain dalam kueri Anda adalah menyertakan $or operator. Dalam hal ini, setiap istilah dalam $or ekspresi harus memiliki indeks yang terkait dengannya , jika tidak, MongoDB akan melakukan pemindaian koleksi (BasicCursor dalam istilah MongoDB 2.6). Ini dijelaskan lebih detail di https://docs .mongodb.com/v2.6/reference/operator/query/or/#behaviors




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB Pesanan/grup agregasi penjualan Per Bulan Jumlah Total + Bidang Hitung

  2. cara mengimplementasikan fungsi seperti gabung kiri mysql di luwak

  3. Grup MongoDB berdasarkan bidang, hitung dan urutkan desc

  4. Kiat untuk Menjalankan MongoDB dalam Produksi Menggunakan Aliran Perubahan

  5. Perbarui subset bidang dengan Mongoose