[linux-l] Re: SQL

Christoph Kies ckies at gmx.de
Fr Okt 20 15:55:16 CEST 2006


Volker Grabsch wrote:
> Was meint ihr dazu? Wo liegen die Vor- und Nachteile von expliziten
> JOINs? Wo liegen die Performance-Unterschiede? Was findet ihr
> übersichtlicher?
> Gibt es dabei wichtige Unterschiede zwischen MySQL und PostgreSQL?

Ich zitiere aus den Neuerungen der aktuelle Beta von Postgresql
http://developer.postgresql.org/pgdocs/postgres/release-8-2.html
 
"E.1.3.1. Performance Improvements:
Allow the planner to reorder outer joins in some circumstances (Tom)
 In previous releases, outer joins would always be evaluated in the order
specified by the query. This change means that the query optimizer will
consider reordering outer joins in some cases, provided that the join order
can be changed without altering the meaning of the query. This can make a
considerable performance difference for queries involving multiple outer
joins."

Mein Übersetzungsversuch:
"Erlaube dem Planer Outer-Joins in bestimmen Situationen neu zu ordnen
(Tom).
In vorherigen Versionen, wurden Outer-Joins immer in der Reihenfolge
ausgewertet in der sie in der Abfrage angegeben wurden.
Diese Änderung bedeutet, dass der Query-Optimizer in Betracht ziehen wird,
die Outer-Joins neu zu ordnen, vorausgesetzt dadurch wird der Sinn der
Abfrage nicht verändert. Dies kann einem bemerkenswerten Performanze
Unterschied ausmachen für Abfragen mit mehreren Outer-Joins"

Zu anderen (inneren) Joins habe ich noch keine Dokumentation gefunden.
Aber ich denke in allen aktuellen Versionen von Postgresql ist es so:

wer das Schlüsselwort Join benutzt sagt damit dem Planer, das er eine
bestimmte Vorstellung zur Ausführungsreienfolge hat, die eingehalten werden
soll. Er verhindert damit ausdrücklich das Optimieren bzw macht das dann
selbst.

viele Grüße,
Christoph Kies




Mehr Informationen über die Mailingliste linux-l