Ich kann das Shard-Schlüssel-Konzept in einem MongoDB Sharded Cluster nicht wirklich verstehen, da ich gerade angefangen habe, MongoDB zu lernen.Relation zwischen Shardschlüsseln und Chunks in MongoDB sharded cluster?
die Dokumentation MongoDB Unter Hinweis:
A chunk ist ein zusammenhängender Bereich von Schlüsselwerte Scherbe auf eine insbesondere Scherbe zugeordnet. Wenn sie über die konfigurierte Chunk-Größe hinaus wachsen, spaltet ein Mongo den Chunk in zwei Chunks auf.
Es scheint, dass die Chuck-Größe etwas mit einem bestimmten Shard zu tun hat, nicht mit dem Cluster selbst. Habe ich recht?
Sprechen über die Mächtigkeit einer Scherbe Schlüssel:
Betrachten wir die Verwendung eines Zustandsfeldes als Scherbe Schlüssel:
Der Wert des Statusschlüssel hält den US-Staat für einen bestimmten Adressdokument. Dieses Feld hat eine niedrige Kardinalität, da alle Dokumente, die den gleichen Wert im Feld haben, sich auf demselben Shard befinden müssen, auch wenn ein bestimmter Zustand Chunk die maximale Chunk-Größe überschreitet.
Da es eine begrenzte Anzahl möglicher Werte für das Statusfeld gibt, kann MongoDB Daten ungleichmäßig auf eine kleine Anzahl von festen Chunks verteilen.
Meine Frage ist, wie sich der Shard-Schlüssel auf die Chunk-Größe bezieht.
Es scheint mir, dass, mit nur zwei Shard-Servern, es nicht möglich wäre, die Daten zu verteilen, weil gleichen Wert im Statusfeld auf dem gleichen Shard befinden müssen. Mit drei Dokumenten mit Staaten wie Arizona, Indiana und Maine, wie Daten unter nur zwei Shards verteilt werden?