Dopo aver letto le Domande e risposte di questo sito Web sugli indici, mi è venuta in mente una domanda.
Che cosa succede se si utilizza una tabella delle dimensioni temporali con il livello di granularità inferiore al giorno. Dove si dovrebbero mettere gli indici?
Randy Melder nella domanda: cosa significa "indice" su RDBMS? disse :
Pensa a un indice come a "indice" ... che è un elenco ordinato di puntatori a posizioni in un file, noto anche come offset
Nel caso della dimensione temporale, la maggior parte delle ricerche sui dati potrebbe essere effettuata per un giorno specifico, una settimana specifica, un mese specifico o un trimestre specifico se la tabella dei tempi memorizza tutto il giorno per un anno unico .
La mia domanda è: si dovrebbero mettere gli indici per tutti quei campi?
Il giorno dovrebbe essere unico, quindi per questo capisco perfettamente l'uso degli indici. Ma un id settimana avrà 7 ricorrenze , un id mese avrà 30/31 occorrenze , un id quarto avrà più o meno 120 occorrenze .
- Si dovrebbero ancora mettere gli indici per quei campi?
- Sarà ancora utile?
Te lo sto chiedendo perché nella stessa domanda, David Spillett ha detto:
L'aggiunta di troppi indici può ovviamente essere una cattiva ottimizzazione, poiché lo spazio aggiuntivo utilizzato per memorizzare gli indici (e il carico di I / O per mantenerli se il DB vede molte operazioni di scrittura) potrebbe essere un problema peggiore rispetto alle query di lettura leggermente meno ottimali , quindi non esagerare.
Quindi quali sarebbero le migliori considerazioni per il caso della dimensione temporale?