2010-11-27 13 views
3

Pour être vrai, Après avoir tapé le titre de la question seulement, j'ai jeté un oeil sur l'indexation DB dans Wiki. Maintenant, je sais quelque chose sur l'indexation en général. Mais, j'ai encore quelques questions sur l'indexation MongoDB.Qu'entend-on par indexation dans MongoDB?

Qu'est-ce que l'indexation dans MongoDB? Qu'est-ce qu'il va faire exactement, Si je indexer une collection? Qu'est-ce que je peux faire avec l'indexation dans MongoDB? Serai-je capable de l'utiliser pour rechercher des données spécifiques?

Quelqu'un peut-il l'expliquer avec l'ensemble de documents ci-dessous dans une Collection dans certains MongoDB?

{ "_id":"das23j..", "x": "1", "y":[ {"RAM":"2 GB"}, {"Processor":"Intel i7"}, {"Graphics Card": "NVIDIA.."}]} 

Merci!

+3

Les index MongoDb sont des arbres B, wikipedia explique plus: http://en.wikipedia.org/wiki/B-tree – TTT

+0

Et cette partie est presque la même que l'indexation dans un SGBDR comme Oracle ou MySQL. – Thilo

Répondre

6

Un index accélère la recherche, au détriment de l'espace de stockage. Considérez l'index comme une copie supplémentaire des données d'un attribut (ou d'une colonne), mais dans l'ordre. Si vous avez une collection ordonnée, vous pouvez effectuer quelque chose comme une recherche binaire, qui est beaucoup plus rapide qu'une recherche séquentielle (dont vous auriez besoin si les données n'étaient pas commandées). Une fois que vous avez trouvé les données dont vous avez besoin en utilisant l'index, vous pouvez vous référer à l'enregistrement correspondant. Le compromis est que vous avez besoin de l'espace supplémentaire pour stocker la copie "ordonnée" des données de cette colonne, et il y a un léger compromis de vitesse car les nouveaux enregistrements doivent être insérés dans le bon ordre, une condition requise pour les algorithmes de recherche rapide travailler.

Pour plus de détails sur l'indexation de voir mongodb http://www.mongodb.org/display/DOCS/Indexes.

+0

Roadmaster, Une explication bonne et concise, bien fait. – raffian