• [^] # Re: Bah

    Posté par . En réponse au message performances de JOIN / EXISTS sur postgres. Évalué à 2.

    À mon avis ce n'est pas terrible de mettre le or dans la clause de jointure… (je me demande comment c'est interprété…)

    J'écrirais plutôt :

    select us.id
    from user us
    join email esource
    on esource.source_id = us.id
    union
    select ut.id
    from user ut
    join email etarget
    on e.target_id = ut.id

    Je pense que là, on a 2 sous-requêtes bien optimisées, et assez peu de temps pour l'union (du moment que chacune des sous-requête ne ramène pas 100 000 000 de lignes…)