Après avoir lu les questions et réponses de ce site Web sur les index, une question m'est venue à l'esprit.
Et si, on utilise une table de dimension temporelle avec le niveau de granularité inférieur étant le jour. Où placer les index?
Randy Melder dans la question: Que signifie «index» sur RDBMS? m'a dit :
Considérez un index comme une "table des matières" ... c'est-à-dire une liste ordonnée de pointeurs vers des positions dans un fichier, alias décalages
Dans le cas de la dimension temporelle, la plupart des recherches de données peuvent être effectuées soit pour un jour spécifique, une semaine spécifique, un mois spécifique ou un trimestre spécifique si le calendrier stocke toute la journée pour une année unique .
Ma question est: faut-il mettre des index pour tous ces champs?
Le jour est censé être unique, donc pour celui-ci, je comprends parfaitement l'utilisation des index. Mais un identifiant de semaine aura 7 occurrences , un identifiant de mois aura 30/31 occurrences , un identifiant de quart aura plus ou moins 120 occurrences .
- Faut-il encore mettre des index pour ces champs?
- Sera-t-il toujours utile?
Je vous le demande parce que dans la même question, David Spillett a dit:
Ajouter trop d'index peut être une mauvaise optimisation, bien sûr, car l'espace supplémentaire utilisé pour stocker les index (et la charge d'E / S pour les maintenir si votre base de données voit de nombreuses opérations d'écriture) peut être un problème pire que les requêtes de lecture légèrement moins optimales , alors ne le faites pas trop.
Quelles seraient donc les meilleures considérations pour le cas de la dimension temporelle?