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

Může MongoDB fungovat, když je velikost databáze větší než RAM?

Ano, může to fungovat. Na jaké úrovni to bude fungovat, je spíše "To závisí"

Klíčovou věcí je zajistit si pracovní sestavu vejde se do RAM. Pokud tedy máte například 16 GB paměti RAM a 20 GB databáze (včetně indexů), pokud potřebujete přistupovat pouze k polovině všech dat, protože druhá polovina je starší/nikdy se na ni ve skutečnosti neptalo, budete v pořádku, protože pouze polovina dat databáze musí být v paměti RAM (10 GB).

Klíčová je zde pracovní sada. Například, pokud máte protokolovací aplikaci, která odesílá výstup do MongoDB, může se stát, že vaší pracovní sadou je množství dat (a indexů) za poslední 3 měsíce a že všechna data před tím nemáte přístup.

Když vaše pracovní sada překročí množství paměti RAM, bude pokračovat v práci, ale se znatelně sníženým výkonem, protože věci budou muset neustále přecházet na disk, který je mnohem méně výkonný. Pokud jste v této situaci překračování omezení RAM na počítači, pak zde vstupuje do hry sharding - takže můžete vyvážit data na více počítačích, čímž zvýšíte množství dat, která lze uchovat v paměti RAM.



  1. NoClassDefFoundError po exportu jar

  2. MongoDB sort()

  3. Jak ověřím členy pole pole?

  4. Vytváření vícepolních indexů v Mongoose / MongoDB