Ini pada dasarnya bermuara jika 10 indeks ukuran N lebih efisien daripada satu indeks ukuran N * 10. Jika Anda murni melihat bacaan maka indeks terpisah harus selalu lebih cepat. Jalan b-tree terkait akan memeriksa keyset yang lebih kecil, dll.
Ada beberapa hal yang perlu dipertimbangkan :
- Indeks pada bidang array pada dasarnya mengindeks setiap elemen array secara terpisah. Dengan demikian overhead pencarian paling banyak akan menjadi 1-2 langkah tambahan selama perjalanan b-tree yang merupakan hit kinerja yang dapat diabaikan. Dengan kata lain, mereka akan hampir sama cepatnya.
- Memiliki 10 indeks dapat berarti setiap pembaruan/penyisipan akan memerlukan lebih dari satu indeks untuk diperbarui (tergantung pada apakah indeks Anda berbagi bidang atau jika Anda memperbarui lebih dari 1 stempel waktu sekaligus). Ini adalah pertimbangan kinerja yang signifikan.
- Menggunakan indeks array membuatnya sedikit lebih mudah untuk menambahkan stempel waktu tambahan (mis. Timestamp10).
- Ada batasan jumlah namespace yang dapat Anda gunakan per database (24k) dan setiap indeks membutuhkan satu. Jika Anda membuat indeks terpisah per bidang, ini mungkin menjadi masalah.
- Yang paling penting, indeks array jauh lebih mudah dan akan menyederhanakan kode Anda dan dengan demikian pemeliharaan. Mengingat perbedaan kinerja yang terbatas, menurut saya ini adalah motivasi terkuat untuk menggunakan indeks array di sini.