J'ai une question sur la conception d'index dans MongoDB.Indexation dans MongoDB - quel est le meilleur moyen
Dites que j'ai une collection d'utilisateurs et de groupes.
user {
name : "" ,
age : 19
}
group {
name : ""
members : [],
posts : [ { date : "" , author : "" , topic : "" }, { date : "" ,
author : "" , topic : "" } ......]
}
Il peut y avoir 1000 de groupes et chaque groupe peut avoir des millions de messages. Opérations I est souvent EFFECTUER:
- obtenir des postes en fonction de la date (70%)
- des messages de mise à jour (30%)
Donc, essentiellement je besoin d'indexer la date.
Ma question est:
Dois-je créer une nouvelle collection de messages comme
posts {
name : "", date : "" , author : "" , topic : ""
}
et créer un index unique valeur à la date dans les postes collection
(db.posts.ensureIndex({posts : 1}))
OU
Devrais-je inclure po sts à l'intérieur de l'objet groupe et créer un index intégré comme db.groups.ensureIndex({ posts.date : 1})
Lequel est le plus efficace? Quelle est la meilleure pratique si cela doit être à l'échelle de millions de messages?
Merci