MongoDB menggabungkan kunci majemuk dalam beberapa cara dan menggunakannya sebagai kunci dalam BTree.
Saat menemukan satu item - Urutan node di pohon tidak relevan.
Jika Anda mengembalikan rentang node - Unsur-unsur yang dekat satu sama lain akan turun ke cabang pohon yang sama. Semakin dekat node dalam jangkauan semakin cepat mereka dapat diambil.
Dengan indeks bidang tunggal - Urutannya tidak masalah. Jika mereka berdekatan dalam urutan menaik, mereka juga akan berdekatan dalam urutan menurun.
Bila Anda memiliki kunci majemuk - Urutan mulai penting.
Misalnya, jika kuncinya adalah A, naik, B, naik, indeks mungkin terlihat seperti ini:
Row A B 1 1 1 2 2 6 3 2 7 4 3 4 5 3 5 6 3 6 7 5 1
Kueri untuk A menaik B turun perlu melompati indeks agar tidak mengembalikan baris dan akan lebih lambat. Misalnya akan mengembalikan Baris 1, 3, 2, 6, 5, 4, 7
Kueri rentang dalam urutan yang sama dengan indeks hanya akan mengembalikan baris secara berurutan dalam urutan yang benar.
Menemukan catatan dalam BTree membutuhkan waktu O(Log(n)). Menemukan rentang record secara berurutan hanya OLog(n) + k di mana k adalah jumlah record yang akan dikembalikan.
Jika catatan rusak, biayanya bisa setinggi OLog(n) * k