Was ist schneller: WHERE Abfrage mit Zugriff auf Daten aus JOIN oder Subselect?

  • Hallo,

    also wie der Titel schon sagt wollte ich wissen was bei großen Datenbankabfragen performancetechnisch besser ist?

    Abfragen, die in der WHERE Klausel auf Daten Zugreift, die zuvor mit Joins geholt wurden und damit eine Bedingung stellt, oder Subselects in der Where Klausel, durch die man sich die JOINS ersparen würde ?

    Lg
    Mathias

    PHP
    if(isset($this) || !isset($this)){ // that's the question...
  • Was hindert dich daran es einfach auszuprobieren?

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • prinzipiell sind in diesem Fall (wie du es beschreibst) Subselects schneller.

    ACHTUNG: Können nur verwendet werden, wenn du KEINE Spalten zur Anzeige benötigst!!!

    Weiters ist darauf zu achten, dass du nicht den "IN" - Operator nimmst, sondern "EXISTS" da er somit
    deine äußere Abfrage laufen lässt, anschließend das Subselect und aus beiden SQL-Resultsets einen
    Join macht und nochmals laufen lässt!

    VIIIIEEEELLLL Performanter!!!

    Lg