Gelincik Başına dokümantasyon için MongooseJS
ve MongoDB
/ Node.js
:
Uygulamanız başladığında Mongoose
ensureIndex
, şemanızdaki her tanımlı dizini otomatik olarak çağırır . Geliştirme için güzel olsa da, dizin oluşturma önemli bir performans etkisine neden olabileceğinden bu davranışın üretimde devre dışı bırakılması önerilir. ŞemanızınautoIndex
seçeneğini yanlış olarak ayarlayarak davranışı devre dışı bırakın .
Bu, Mongoose'u Mongo'ya uygulama başlangıcındaki tüm dizinleri baştan sona çalıştırma talimatını vermekten optimize etmek için konuşlandırmadan önce firavun faresinden otomatik indekslemenin kaldırılması talimatını veriyor gibi görünüyor ki bu mantıklı görünüyor.
Üretim kodunda indekslemeyi gerçekleştirmenin doğru yolu nedir? Belki harici bir komut dosyası dizinler oluşturmalı? Ya da ensureIndex
tek bir uygulama bir koleksiyonun tek okuyucusu / yazıcısı ise, çünkü her DB yazma gerçekleştiğinde bir dizine devam edecekse gereksiz olabilir mi?
Düzenleme: takviyesi için, MongoDB iyi sağlayan belgelere için nasıl yapmak endeksleme, ancak neden ya ne zaman açık indeksleme direktifleri yapılmalıdır. Bana öyle geliyor ki, indekslerin yazar uygulamaları tarafından mevcut indeksleri olan koleksiyonlarda otomatik olarak güncel tutulması gerekiyor ve bu ensureIndex
gerçekten tek seferlik bir şey (yeni bir indeks uygulandığında yapılır), bu durumda Mongoose'un autoIndex
bir normal bir sunucu yeniden başlatması altında işlem yok.