2011-04-02 9 views
1

Je voudrais savoir quel type d'algorithme d'indexation interne MongoDB utilise. Parce que j'ai certaines données veulent stocker, et chaque document (ligne) a un ID, qui est probablement une valeur de hachage unique. (par exemple généré par md5() ou un autre algorithme de hachage). Donc, je voudrais comprendre quelle méthode de hachage je devrais utiliser pour créer l'ID, de sorte qu'il est rapide pour le MongoDB de l'indexer. :)Quel algorithme de Mongo Index utilise? Arbre binaire?

+2

Avez-vous vérifié le référentiel du code source de MongoDB? Si non, pourquoi pas? Si oui, quel module de code ** spécifique ** lisiez-vous? –

Répondre

2

Oui, MongoDB utilisation b-tree, documentation:

Un index est une structure de données qui collecte des informations sur les valeurs des champs spécifiés dans les documents d'une collection. Cette structure de données est utilisée par la requête de Mongo optimiseur pour trier rapidement et ordonner les documents dans une collection. Formellement parlant, ces index sont implémentés comme des index "B-Tree".

Je suggère d'utiliser mongodb ObjectId pour la collection _id, et ne se soucient pas de: "Comment créer _id?" du tout. Parce que c'est probablement pour mongodb, mais pas pour le développeur. Je suppose qu'il vaut mieux se soucier du schéma, des index, etc.

+2

B-arbre et l'arbre binaire ne sont pas les mêmes. – pingw33n

+0

parce que je dois avoir un index qui ne peut pas utiliser l'index interne Mongo, donc, je me demande, si mongo fonctionne mieux avec l'index que: 1) Chaîne seulement, 2) numéros seulement, 3) Fix # HexNumeric caractères. (mélange de char et numéro), 4) ou n'a pas d'importance. – murvinlai

+0

@murvinlai: Probablement préférable de demander aux développeurs de mongodb groupes google (parce que je ne sais pas exactement comment fonctionne mongodb en interne) @ pingw33n: Oh, d'accord, je ne sais pas vraiment directement. Vous pouvez corriger ma réponse ou vous répondre. –