Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL e set nidificato:JOIN lento (non utilizzando l'indice)

Ah, mi è appena venuto in mente.

Dal momento che stai chiedendo tutto nella tabella, mysql decide invece di utilizzare una scansione completa della tabella, poiché la ritiene più efficiente.

Per ottenere un utilizzo delle chiavi, aggiungi alcuni filtri per limitare comunque la ricerca di ogni riga in tutte le tabelle.

Aggiornamento della risposta:

La tua seconda domanda non ha senso. Sei rimasto a unirti a lca ma hai un filtro al suo interno, questo nega di per sé il join sinistro. Inoltre stai cercando dati nell'ultimo passaggio della query, il che significa che dovrai cercare tutti i dati lt, lc e lca per trovare i tuoi dati. Inoltre non hai un indice con il "tipo" della colonna più a sinistra nelle posizioni, quindi hai ancora bisogno di una scansione completa della tabella per trovare i tuoi dati.

Se avessi dei dati di esempio e un esempio di ciò che stai cercando di ottenere, forse sarebbe più facile aiutarti.