- Si
c
n'est pas présent, et la requête utilise l'index c
dans le plan de requête, puis document ne sera pas trouvé, car il ne figure pas dans l'indice.
- La clé doit être indexée et être unique. Également consulter les notes sur
shard key
sur the sharding reference doc, il dit
La clé de tesson idéal:
est facilement divisible qui le rend facile pour MongoDB de distribuer du contenu parmi les tessons. Les clés à fragmentation qui ont un nombre limité de valeurs possibles ne sont pas idéales car elles peuvent entraîner des segments qui sont "impossibles à masquer". Voir la section Cardinalité pour plus d'informations. distribuera les opérations d'écriture au sein du cluster, afin d'éviter que le fragment unique ne devienne un goulot d'étranglement. Les clés de fragment qui ont une corrélation élevée avec le temps d'insertion sont de mauvais choix pour cette raison; Cependant, les clés de partition qui ont un «caractère aléatoire» supérieur satisfont mieux cette exigence . Voir la section Write Scaling pour plus d'informations sur l'arrière-plan . permettra aux mongos de renvoyer la plupart des requêtes directement à partir d'une seule instance mongod spécifique. Votre clé shard devrait être le champ principal utilisé par vos requêtes, et les champs avec un haut degré de "hasard" sont de mauvais choix pour cette raison. Voir la section Query Isolation pour des exemples spécifiques.
si hypothétiquement, si mongo accepte un index clairsemés comme la clé de tesson, mongo ne saura pas où placer docs qui ne correspondent pas dans l'index. On peut discuter, les mettre tous dans un autre fragment à cette fin. Contre-argument serait, que se passe-t-il si elle dépasse ... d'où je ne pense pas qu'il serait logique de le faire, même si cela est permis.
3- Je doute indice clairsemés fonctionnera, car tessons ont besoin d'un index unique et un indice clairsemés ne remplit pas les critères. L'exigence d'index unique, je ne l'ai pas trouvée dans les docs, mais si vous utilisez l'aide du shell admin mongo, elle vous en parle.
Il est absolument faux que les fragments requièrent un index unique. Vous pouvez vous assurer d'un index unique et l'utiliser pour votre partition, mais il n'est pas nécessaire qu'il soit unique. –
Je n'ai toujours pas trouvé de documentation qui prouve ou réfute l'exigence d'un index unique.Cependant, en faisant le cours 10gen, dans une des affectations, il y avait un gotcha où l'équilibreur n'équilibrait pas les données, si l'index n'avait pas l'attribut '{unique: true}'. Peut-être, ça aide quelqu'un. – Nasir