Per Mangusta documentation dla MongooseJS
i MongoDB
/Node.js
:Mongoose indeksowanie w kodzie produkcji
Kiedy aplikacja uruchamia się, Mongoose automatycznie wywołuje
ensureIndex
dla każdego zdefiniowanego wskaźnika w schemacie. Chociaż jest to dobre dla rozwoju, zaleca się wyłączenie tego zachowania podczas produkcji, ponieważ tworzenie indeksu może mieć znaczący wpływ na wydajność. Wyłącz to działanie, ustawiając opcję Twojego schematu na wartość false.
Wydaje polecić usunięcie automatycznego indeksowania od mangusty przed wdrożeniem w celu optymalizacji Mongoose od instruowania Mongo iść i rezygnacji przez wszystkich indeksów na starcie aplikacji, która wydaje się mieć sens.
Jaki jest właściwy sposób obsługi indeksowania w kodzie produkcyjnym? Może zewnętrzny skrypt powinien generować indeksy? A może ensureIndex
jest zbędne, jeśli pojedyncza aplikacja jest jedynym czytnikiem/programem piszącym do kolekcji, ponieważ będzie kontynuować indeks za każdym razem, gdy wystąpi zapis DB?
Edit: W celu uzupełnienia, MongoDB zapewnia dobry documentation dla jak zrobić indeksowanie, ale nie dlaczego lub gdy dyrektyw indeksowania jawne powinny być zrobione. Wydaje mi się, że indeksy powinny być aktualizowane przez aplikacje piszące automatycznie w kolekcjach z istniejącymi indeksami, a to, że ensureIndex
jest naprawdę bardziej jednorazowe (zrobione przy zastosowaniu nowego indeksu), w takim przypadku Mongoose's autoIndex
powinno być no-op pod normalnym restartem serwera.
Ktokolwiek uwzględnił to pytanie, podaj przyczynę. – rdrey