2013-08-29 25 views
7

Próbuję zebrać wszystkie moje pytania dzieje się na mongodb w odniesieniu do mojej Applciation. Tak więc skonfigurowałem poziom profilowania na 2, aby rejestrował wszystkie zapytania. W ramach architektury, gdy tylko użytkownik się zaloguje, będzie miała miejsce stała aktualizacja mongodb.Dlaczego kwerendy wewnątrz kolekcji system.profile są nadpisywane

Ale zauważyłem, że licznik system.profile jest zmniejszona nie wiem dlaczego

> db.system.profile.count() 
322 
> db.system.profile.count() 
351 
> db.system.profile.count() 
202 
> db.system.profile.count() 
136 
> db.system.profile.count() 
233 

Dlaczego w moim przypadku zapytań są nadpisywane ??

Czy istnieje możliwość, że mogę nagrać wszystkie moje wyraźne pytania dotyczące mojej aplikacji.

Potrzebuję tego, ponieważ mogę usunąć/dodać niektóre indeksy w jednej z moich kolekcji.

Odpowiedz

20

system.profile jest zbiorem z ograniczeniami o domyślnym rozmiarze 1 MB, więc dokumenty są czyszczone na naturalnych (ze względu na znacznik wstawienia), aby zrobić miejsce na nowsze dokumenty.

W celu zwiększenia rozmiaru kolekcji system.profile (powiedzmy 10 MB) zrobić:

1) Zatrzymanie profiler: db.setProfilingLevel(0)

2) Spadek system.profile: db.system.profile.drop()

3) Tworzenie dużo większy zbiór system.profile ręcznie: db.createCollection("system.profile", { capped: true, size: 1024 * 1024 * 10 })

4) umożliwiają profilowanie ponownie

Jeśli średnia kolekcja 1 MB mieści około 200-300 dokumentów, nowe ustawienia zmieszczą się w około 2000 - 3000 dokumentów. Zwiększ rozmiar systemu.profile w razie potrzeby.

+0

wielki post, dziękuję bardzo, bardzo dużo. będzie z pewnością pomocna dla osób używających mongodb. – Pawan

Powiązane problemy