Kompaktowe kolekcje MongoDB

Kompaktowe kolekcje MongoDB

W tym samouczku zbadamy, jak używać polecenia kompaktowego w MongoDB. Polecenie kompaktowe umożliwia przepisanie i defragment danych i indeksów w zbiorze MongoDB bez miejsca na dysku.

Składnia polecenia

Poniższy fragment kodu pokazuje składnię polecenia kompaktowego:

db.Uruchom polecenie(

kompaktowy:

)

Polecenie kompaktowe akceptuje następujące parametry:

  1. - Określa nazwę kolekcji do kompaktowej.
  2. siła - Parametr logiczny, który umożliwia kompaktowe polecenie uruchomione na podstawowym zestawie w danym zestawie repliki.
  3. komentarz - Określa komentarz dołączony do danego polecenia.

Warto pamiętać, że kompaktowa operacja blokuje bazę danych, na której wykonywane jest kompaktowe polecenie. Nie wpływa to jednak na inne bazy danych w klastrze.

Przykład:

Zilustrujmy, jak korzystać z polecenia kompaktowego w MongoDB. Aby najlepiej zobaczyć efekty polecenia kompaktowego, dobrze jest wyświetlić rozmiar kolekcji przed zagęszczeniem.

Załóżmy, że mamy kolekcję o nazwie Disney, która zawiera informacje o filmach Disneya i programach telewizyjnych.

Możemy uzyskać użycie dysku zbierającego przed zagęszczeniem z następującym poleceniem:

kino> db.Disney.Stats (Scale: 1024)

Poprzednie polecenie zwraca statystyki dotyczące określonej kolekcji. Interesuje nas rozmiar kolekcji. Przykładem jest to, jak pokazano:

,
Nindexes: 3,
IndexBuilds: [],
TotalIndexSize: 104,
Suma: 400,
indeksuje się: _id_: 28, tytuł_1: 52, type_1: 24,
ScaleFactor: 1024,
OK: 1

W takim przypadku widzimy, że kolekcja wymaga 400 kB danych przed zagęszczeniem.

Uruchamianie polecenia zagęszcza

Możemy uruchomić operację zagęszczania, jak pokazano następująco:

kino> db.RunCommand (compact: „Disney”, Force: true)

Polecenie powinno zwrócić dane wyjściowe, jak pokazano następująco:

kino> db.RunCommand (compact: „Disney”, Force: true)
bajtesfreed: 300, OK: 1

Następnie możemy sprawdzić statystyki użytkowania w następujący sposób:


Nindexes: 3,
IndexBuilds: [],
TotalIndexSize: 104,
Suma: 399,
indeksuje się: _id_: 28, tytuł_1: 52, type_1: 24,
ScaleFactor: 1024,
OK: 1

Widzimy, że polecenie uwalnia 30 bajtów danych.

Wniosek

W tym krótkim poście omówiliśmy sposób korzystania z polecenia kompaktowego w MongoDB do defragmentacji danych w danym zbiorze i zwolnienia miejsca na dysku hosta.