Ilja: Query optimieren / mysql 5

Beitrag lesen

moin,

das ist eine fehlerhafte abfrage, die nur mysql verarbeiten würde. jedes andere dbms würde eine fehlermeldung ausgeben.

Das würde ich jetzt mal nicht als das Hauptproblem ansehen.

wenn schon verbessern, dann gleich richtig.

des weiteren benutzt du die implizite join schreibweise, benutze immer die explizite. es gibt keinen vernüftigen grund sie nicht zu benutzen.

Eher verwundert mich, dass er nur eine Join-Bedingung aber vier Tabellen/Aliase hat. Oder zählen die beiden BETWEEN-Bedingunen zu den JOIN-Bedingungen und nicht zu den datensatzeinschränkenden? Das Hauptproblem ist ja, dass er hier wohl irgendwelche riesigen kartesischen Produkte bekommt, weil er nicht richtig verknüpft und/oder einschränkt.

ja, und deswegen auch die explizite schreibweise, die bringt sowas immer sehr schnell ans tageslicht.

auch namen wir "lft" sind wenig aussagekräftig.

Im Kontext Nested Sets ist das schon ausreichend. Ich würde das sogar auf L und R beschränken. Und wenn du so willst, wären die Aliasnamen ja auch nicht aussagekräftig. Aber das ist auch ein unwichtiger Nebenkriegsschauplatz.

naja, bei aliasnamen kann ichmir immer noch die zugehörige tabelle als sprechendeobjekt anschauen, aber bei den spalten kann ich es ja nicht mehr auflösen. für jemanden der dann diese abfragen nachbearbeiten muss, machen solche bezeichnungne es nur untöig schwieriger.

zu guter letzt eine frage,handelt es sich hier um tabellen "000node" oder um views ?

Wofür ist diese Unterscheidung wichtig? Meinst du, wenn es eine View ist, dass die vielleicht selbst durch einen Join eine Menge Daten generiert, und man auch noch die Definition der View kennen muss?

was auch immer, wenn es zu performance problemen kommt, dann will ich schon wissen, was in dereventuell vorhandenen view steckt.

Ilja