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

Di MongoDB, jika indeks ada di 3 bidang, kita bisa menggunakan indeks itu saat menanyakan 2 bidang? (wildcard di bidang ke-3)

Itu adalah indeks B-tree, sehingga dapat digunakan untuk subset awalan dari kolom yang terlibat. Jika Anda tidak memiliki kolom utama, pemindaian rentang indeks (operasi yang terutama digunakan untuk indeks B-tree) tidak lagi dimungkinkan. Mungkin ada cara lain untuk tetap menggunakan indeks (Oracle memiliki pemindaian penuh yang cepat dan melewatkan pemindaian misalnya), tetapi biasanya, indeks tidak akan digunakan.

Alasan ini berlaku untuk semua yang menggunakan indeks B-tree, DB relasional atau tidak.

Sekali lagi, ini tidak tergantung pada jenis kolom, tetapi pada urutan kolom dalam indeks. Anda harus memiliki kolom terdepan (dalam kasus Anda, Anda memerlukan page_type). Jika Anda memiliki banyak kueri tanpa page_type, pertimbangkan untuk membuat ulang indeks dengan page_type sebagai kolom terakhir (yang tentu saja juga dapat berdampak negatif pada kueri lainnya). Secara umum, Anda perlu mengetahui jenis kueri yang akan dijalankan sebelum Anda dapat mendesain indeks.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kueri MongoDB di dalam array bersarang

  2. Memetakan bidang dukungan pribadi dengan MongoDB C#

  3. MongoJS tidak mengembalikan data saat mencari dengan ekspresi reguler

  4. Mengulangi kursor mongodb secara serial (menunggu panggilan balik sebelum pindah ke dokumen berikutnya)

  5. base64 untuk memandu ke base64