sql >> Databáze >  >> NoSQL >> MongoDB

Co to znamená umístit pracovní sadu do paměti RAM pro MongoDB?

"Pracovní sada" je v podstatě množství dat A indexů, které budou aktivní/používané vaším systémem.

Předpokládejme například, že máte data za 1 rok. Pro zjednodušení se každý měsíc vztahuje na 1 GB dat, což dává celkem 12 GB, a pro pokrytí měsíční hodnoty dat máte k dispozici indexy v hodnotě 1 GB, opět celkem 12 GB za rok.

Pokud vždy přistupujete k datům za posledních 12 měsíců, pak je vaše pracovní sada:12 GB (data) + 12 GB (indexy) =24 GB.

Pokud však ve skutečnosti přistupujete pouze k datům za poslední 3 měsíce, pak je vaše pracovní sada:3 GB (data) + 3 GB (indexy) =6 GB. V tomto scénáři, pokud jste měli 8 GB RAM a poté jste začali pravidelně přistupovat k datům za posledních 6 měsíců, pak by vaše pracovní sada začala překračovat dostupnou RAM a mělo by to dopad na výkon.

Obecně ale platí, že pokud máte dostatek paměti RAM k pokrytí množství dat/indexů, k nimž očekáváte častý přístup, budete v pořádku.

Upravit:Odpověď na otázku v komentářích
Nejsem si jistý, zda to docela sleduji, ale pokusím se odpovědět. Za prvé, výpočet pro pracovní sadu je "figura z kulového parku". Za druhé, pokud máte (např.) 1GB index na user_id, pak pouze část tohoto indexu, ke které se běžně přistupuje, musí být v RAM (např. předpokládejme, že 50 % uživatelů je neaktivních, pak 0,5 GB indexu bude častěji požadované/potřebné v RAM). Obecně platí, že čím více paměti RAM máte, tím lépe, zejména pokud se pracovní sada pravděpodobně časem rozroste v důsledku zvýšeného využití. Zde přichází na řadu sharding – rozdělte data na více uzlů a můžete je efektivně škálovat. Vaše pracovní sada je pak rozdělena na více počítačů, což znamená, že čím více může být uloženo v paměti RAM. Potřebujete více RAM? Přidejte další počítač ke sdílení.



  1. Jak převést z datového typu řetězec na datum?

  2. Aktualizace a vrácení dokumentu v Mongodb

  3. Jak spravovat konfigurační šablony pro vaše databáze pomocí ClusterControl

  4. Spring Data MongoDB:Projekce a agregace