Il a été porté à mon attention que la USING
construction (au lieu de ON
) dans la FROM
clause de SELECT
requête pourrait introduire des barrières d'optimisation dans certains cas.
Je veux dire ce mot clé:
SELECT * De JOIN b USING (a_id)
Juste dans des cas plus complexes.
Contexte: ce commentaire à cette question .
J'utilise beaucoup cela et je n'ai jamais rien remarqué jusqu'à présent. Je serais très intéressé par un cas de test démontrant l'effet ou des liens vers des informations supplémentaires. Mes efforts de recherche ont été vides.
La réponse parfaite serait un test à démontrer USING (a_id)
avec des performances inférieures par rapport à la clause de jointure alternative ON a.a_id = b.a_id
, si cela peut réellement se produire.
id
comme nom de colonne.
USING
peu plus rapide , car il en résulte une colonne de moins dans la matrice de résultats. Vos conclusions remontent à 2005 et 2008. Je suppose que tous les problèmes ont été résolus à ce jour. Cependant , je vois une limite possible: ilUSING
peut être nécessaire d’ appliquer des joints avec ordre , car la colonne de jointure résultante est un produit joint. De ce fait, limitant potentiellement les options de réorganisation des JOIN.