pdf24-creator

Impara la programmazione di basi dati con quiz interattivi e feedback immediato

Ottimizzazione Database Programming 3 min

Perche le mie query erano lente: la storia degli indici ignorati

Tre giorni persi a cercare nel posto sbagliato

Marta Albanese
Autore
Perche le mie query erano lente: la storia degli indici ignorati

Durante il mio primo stage, lavoravo su un gestionale con una tabella ordini che conteneva circa 180.000 righe. Ogni ricerca per cliente impiegava tra 4 e 9 secondi.

Dove cercavo il problema

Ho trascorso tre giorni a riscrivere il codice Python che costruiva le query. I tempi miglioravano di qualche decimo di secondo, ma il problema restava evidente.

La diagnosi corretta

Il senior developer ha eseguito EXPLAIN ANALYZE sulla query e ha mostrato una full table scan su una colonna usata in ogni WHERE. La colonna cliente_id non aveva alcun indice.

Aggiungere un singolo indice ha ridotto il tempo di risposta da 7 secondi a meno di 0,3 secondi. Nessuna modifica al codice applicativo.

Cosa ho cambiato nel mio approccio quotidiano

  1. Prima di ottimizzare il codice, analizzare sempre il piano di esecuzione della query
  2. Verificare la presenza di indici su ogni colonna usata in JOIN e WHERE
  3. Documentare le decisioni sugli indici come si documenta il codice

Oggi, quando studio nuovi strumenti come pdf24 download per gestire documentazione tecnica offline, applico la stessa logica: capire il collo di bottiglia prima di cercare soluzioni alternative. In database programming, diagnosticare correttamente vale piu di qualsiasi ottimizzazione superficiale.