Sesuai dokumentasi Mongoose untuk MongooseJS
dan MongoDB
/ Node.js
:
Saat aplikasi Anda dimulai, Mongoose secara otomatis memanggil
ensureIndex
setiap indeks yang ditentukan dalam skema Anda. Meskipun bagus untuk pengembangan, disarankan agar perilaku ini dinonaktifkan dalam produksi karena pembuatan indeks dapat menyebabkan dampak kinerja yang signifikan. Nonaktifkan perilaku tersebut dengan menyetelautoIndex
opsi skema Anda ke false.
Ini tampaknya menginstruksikan penghapusan pengindeksan otomatis dari luwak sebelum menerapkan untuk mengoptimalkan Mongoose dari menginstruksikan Mongo untuk pergi dan melakukan churn melalui semua indeks saat memulai aplikasi, yang tampaknya masuk akal.
Apa cara yang tepat untuk menangani pengindeksan dalam kode produksi? Mungkin skrip eksternal harus menghasilkan indeks? Atau mungkin ensureIndex
tidak diperlukan jika satu aplikasi adalah satu-satunya pembaca / penulis untuk sebuah koleksi karena itu akan melanjutkan indeks setiap kali terjadi penulisan DB?
Sunting: Untuk melengkapi, MongoDB menyediakan dokumentasi yang baik tentang bagaimana melakukan pengindeksan, tetapi tidak mengapa atau kapan arahan pengindeksan eksplisit harus dilakukan. Menurut saya indeks harus tetap diperbarui oleh aplikasi penulis secara otomatis pada koleksi dengan indeks yang ada dan itu ensureIndex
benar-benar lebih dari satu kali (dilakukan ketika indeks baru diterapkan), dalam hal ini Mongoose autoIndex
harus menjadi no-op di bawah restart server normal.