Crew algemeen |
|
Nouja, zie het zo: voor iedere Node die jij in de query toevoegt (hetzij een veld, hetzij in feite alles wat je kunt bedenken) wordt het plannen van een query moeilijker. Al helemaal voor MySQL, die een redelijk achterhaald en zwak algoritme ervoor gebruikt.
Dus, als je eerst de aparte query schrijft, kun je die proberen in te passen in je originele query. Dat is zo simpel als copy paste, want MySQL ondersteunt ook gewoon subquery-joins. Maar dat is een extra Node in je query plan, en al die nodes kunnen op (in principe) willekeurige manier aan elkaar gelinkt worden. Oftewel, hoe meer nodes, hoe meer mogelijkheden, hoe langzamer het is.
Maar, als je het apart houdt, heb je twee aparte (en veel simpelere) query plans, wat het geheel weer sneller kan maken.
Nooit vergeten, er steekt veel meer achter een database dan wat hij opslaat. Ook MySQL, hoe erg ik het ook haat, is erg complex en interessant qua hoe ze werken. Voor de lol zou je het eens moeten doen, de source code doorkijken. Die van PostgreSQL is overigens veel interessanter (:
Je kunt er veel van leren, omdat ze vaak technieken/tactieken toepassen waar je niet snel op zou komen maar die uiterst toepasbaar zijn op "normaal" programmeerwerk. :] |