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

waktu pencarian dengan indeks> tanpa indeks

Dalam hal ini, indeks tidak membantu karena set hasil pencocokan Anda terdiri dari hampir seluruh koleksi. Itu berarti harus memuat ke dalam RAM dan melintasi sebagian besar indeks, serta memuat ke dalam RAM dan melintasi dokumen itu sendiri.

Tanpa indeks, itu hanya akan melakukan pemindaian tabel, memeriksa setiap dokumen dan mengembalikan jika cocok.

Dalam kasus seperti ini di mana kueri akan mengembalikan hampir seluruh koleksi, indeks mungkin tidak membantu.

Menambahkan .limit() akan mempercepat kueri. Anda juga dapat memaksa pengoptimal kueri untuk tidak menggunakan indeks dengan .hint():

db.collection.find().hint({$natural:1})

Anda juga bisa memaksa kueri untuk memberikan nilai hasil langsung dari indeks itu sendiri dengan membatasi bidang yang dipilih hanya yang telah Anda indeks. Ini memungkinkannya untuk menghindari keharusan memuat dokumen apa pun setelah melakukan pemindaian indeks.

Coba ini dan lihat apakah output penjelasan menunjukkan "indexOnly":true

db.numbers.find({number: {$gt: 10000}}, {number:1}).explain()

Detailnya di sini:

http://www.mongodb.org /display/DOCS/Retrieving+a+Subset+of+Fields#RetrievingaSubsetofFields-CoveredIndexes




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara membuat tanggal kueri di mongodb menggunakan pymongo?

  2. Tidak dapat menjalankan wadah mongo dengan set replika menggunakan docker-compose

  3. Cara mengurutkan hasil berdasarkan panjang string di MongoDB

  4. bagaimana cara menggunakan $lookup stage di java dengan data pegas mongodb?

  5. Diskriminator tipe driver MongoDB C # dengan kelas generik yang diwarisi dari kelas dasar non-generik