I feel this is premature optimisation because our application is not even released yet. I suggested to monitor for slow queries once we go live and then add indices accordingly.
Non puoi trattare i tuoi utenti finali e l'ambiente di produzione come la garanzia della qualità. In altre parole, stai dicendo che lo capirai in produzione. Non penso che sia il modo giusto e vedo che quell'approccio diventa orribilmente sbagliato ogni giorno .
Devi tenere a mente una cosa, dato che non puoi dipingerla con un pennello largo.
Qual è il tuo carico di lavoro comune ?
Potrebbe sembrare ovvio o noioso, ma è significativo nella pratica. Se hai 10 query che costituiscono il 98% del tuo carico di lavoro (abbastanza comune, che ci crediate o meno), la mia raccomandazione sarebbe una analisi approfondita prima della produzione . Con dati realistici e rappresentativi, assicurati che quelle 10 query siano le migliori possibili ( perfect è uno spreco di tempo prezioso, e quasi impossibile da ottenere).
Per le altre 200 query che costituiscono il 2% del carico di lavoro , quelle che molto probabilmente non valgono un sacco di sforzi e costituiranno la soluzione perfetta per la risoluzione dei problemi dei casi d'angolo stranezze in produzione. Anche questa è una realtà, e non è una cosa terribilmente brutta. Ma ciò non significa ignorare le best practice sull'indicizzazione o fare supposizioni sul recupero dei dati.
È normale e buona pratica calcolare le prestazioni del database prima della produzione. In effetti, esiste una posizione relativamente comune per questo tipo di cosa chiamata a sviluppo DBA .
Ma ...
Alcuni lo prendono troppo lontano e impazziscono aggiungendo indici "nel caso in cui". Qualcuno raccomanda che questo sia un indice mancante? Aggiungilo e altre quattro varianti. Anche una cattiva idea. Non devi solo pensare al tuo recupero dei dati, ma per quanto riguarda la modifica dei dati? Più indici hai su una tabella, generalmente più sovraccarico hai quando modifichi i dati.
Come molte altre cose, c'è un equilibrio salutare.
Una piccola nota divertente ... La pluralizzazione di "Index"
"Indici" sono per gli operatori finanziari
"Gli indici" sono per noi