2010-05-27 5 views
0

L'optimiseur évalue-t-il les avergae une seule fois, ou deux fois?MYSQL Optimisation des expressions récurrentes?

SELECT AVG(col1), 1/AVG(col1) FROM table 

Merci

+0

Je ne connais pas l'optimiseur, mais 'EXPLAIN SELECT AVG (col1), 1/AVG (col1) FROM table' renvoie un seul balayage de table. –

Répondre

1

Je ne vous inquiétez pas à ce sujet. Même si mySqueal le calcule deux fois, il ne fera qu'un seul passage sur les données car la plupart des agrégats sont calculés en une seule passe - et il lit dans les données qui prennent l'heure, donc vous voulez que cela n'arrive qu'une seule fois.