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

Query MySQL lenta con join anche se EXPLAIN mostra un buon piano

Non sono un esperto in questo settore, ma ecco alcuni pensieri:

La velocità delle query richiede più tempo quando g.F2 le modifiche sono dovute alla memorizzazione nella cache. MySQL salverà i risultati per ogni query (fino a quando la cache non sarà piena), ma le nuove query vengono eseguite su una cache vuota, quindi impiegano più tempo. Non dovresti ottimizzare in base a questo. (Vedi Come misurare con precisione )

Non posso dire dalle tue informazioni se il g o gp la tabella ha una maggiore specificità (sembra come gp ?) nel where clausola, ma potresti provare invece una sottoquery. (Vedi Come forzare l'esecuzione prima della query interna )

Per quanto riguarda la profilazione, è possibile che tu stia raggiungendo una soglia fisica come il superamento dell'allocazione della ram (l'uso dello scambio è disastroso per le prestazioni) che non sarebbe ovvio da explain o se explain è semplicemente sbagliato in questo caso.