sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvad er forskellen mellem sharding og replikering i Mongo?

I forbindelse med skalering af MongoDB:

  • replikering opretter yderligere kopier af dataene og giver mulighed for automatisk failover til en anden node. Replikering kan hjælpe med horisontal skalering af læsninger, hvis du er OK til at læse data, der potentielt ikke er de nyeste.

  • sharding giver mulighed for horisontal skalering af dataskrivninger ved at partitionere data på tværs af flere servere ved hjælp af en shard nøgle . Det er vigtigt at vælge en god skærvernøgle. For eksempel kan et dårligt valg af shard-nøgle føre til, at "hot spots" af data kun bliver skrevet på et enkelt shard.

Et sharded miljø tilføjer mere kompleksitet, fordi MongoDB nu skal administrere distribuerende data og anmodninger mellem shards -- yderligere konfigurations- og routingprocesser tilføjes for at administrere disse aspekter.

Replikering og sharding kombineres typisk for at skabe en sharded klynge hvor hvert skår understøttes af et replikasæt.

Fra et klientapplikationssynspunkt har du også en vis kontrol i forhold til replikering/sharding-interaktionen, især:

  • Læs præferencer
  • Skriv bekymringer


  1. Fjern felt fundet i ethvert mongodb-array

  2. Jedis - Hvornår skal returnBrokenResource() bruges

  3. Rækkefølgen af ​​svar på MongoDB $i forespørgsel?

  4. Bedste praksis for at køre MongoDB i en klynge