Ho recentemente avuto a che fare con una query in mysql dove le condizioni di join erano espresse nel seguente modo (con ansi-mode attivato):
[...] on
a.col = 'cost' || b.col
Nonostante b.col e a.col fossero indicizzate, l'explain della query portava l'uguaglianza a considerare TUTTE le righe della tabella b, circa 2 milioni.
Incredibilmente la versione seguente funzionava a dovere:
[...] on
a.col = concat('cost', b.col)
smentendo quindi il manuale, dove si afferma che le due versioni sono la stessa cosa (nella pagina: PIPES_AS_CONCAT).
1 commento:
Onore al merito, anche il manuale di Mysql è un pochettino instabile. Oracle 4ever.
Posta un commento