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

Query MySQL dolorosamente lenta su dati di grandi dimensioni

Ottimizza tabella

Per stabilire una linea di base, consiglierei innanzitutto di eseguire un OPTIMIZE TABLE comando su entrambe le tabelle. Tieni presente che l'operazione potrebbe richiedere del tempo. Dai documenti :

Indicizzazione

Se la gestione dello spazio e dell'indice non è un problema, puoi provare ad aggiungere un indice composito su

product_categories.cat4, product_categories.cat3, product_categories.cat2, product_categories.cat1

Questo sarebbe consigliato se utilizzi un sottoinsieme più a sinistra di queste colonne spesso nelle tue domande Il piano di query indica che può utilizzare il cat1 indice di product_categories . Questo molto probabilmente include solo il cat1 colonna. Aggiungendo tutte e quattro le colonne di categoria a un indice, può cercare in modo più efficiente la riga desiderata. Dai documenti :

Struttura

Inoltre, dato che la tua tabella ha 90 colonne dovresti anche essere consapevole che una tabella più ampia può rallentare le prestazioni delle query . Potresti prendere in considerazione Partizionamento verticale la tua tabella in più tabelle: