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

Mongodb:Dampak kinerja $HINT

Bisakah Anda menentukan indeks gabungan yang telah Anda buat. Saya tidak punya banyak reputasi jadi saya tidak bisa menanyakan ini di komentar. Tapi saya punya jawaban yang mungkin untuk pertanyaan Anda. Mongo menggunakan properti yang disebut "Rentang-Urut-Kesetaraan" yang berperilaku dengan cara yang berbeda. Pertimbangkan situasi di bawah ini-Anda memiliki beberapa dokumen dengan bidang {nama:string, pin:nomor enam digit, SSN:nomor sembilan digit} dan Anda memiliki dua indeks sebagai - {nama:1, pin:1, ssn:1} dan indeks kedua adalah {name:1, ssn :1, pin :1} sekarang pertimbangkan pertanyaan di bawah ini:

  1. db.test.find({name: "XYZ", pin: 123456"}).sort({ssn: 1}) Kueri ini akan menggunakan indeks pertama karena kami memiliki indeks gabungan dalam kelanjutan. Nama, pin, ssn dalam lanjutan.
  2. db.test.find({name: "XYZ", pin: {$gt :123456"}}).sort({ssn: 1}) Anda akan mengharapkan bahwa indeks pertama akan digunakan dalam kueri ini. Tetapi secara mengejutkan indeks detik akan digunakan oleh kueri ini karena memiliki operasi rentang pada pin.

Properti rentang pengurutan kesetaraan mengatakan bahwa perencana kueri akan menggunakan indeks pada bidang yang melayani - "rentang pengurutan kesetaraan" lebih baik. Kueri kedua memiliki rentang pada pin sehingga indeks kedua akan digunakan sementara kueri pertama memiliki kesetaraan di semua bidang sehingga indeks pertama akan digunakan.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tanyakan MongoDB apakah itu Master dari bashscript

  2. Mendapatkan satu objek dari mongodb di C #

  3. Memperbarui item dalam array dengan ID unik

  4. Apakah MongoDB menggunakan kembali ruang yang dihapus?

  5. Cara termudah untuk menyalin/mengkloning contoh dokumen luwak?