dedlfix: Performanceproblem Umkreissuche

Beitrag lesen

Tach!

Siehe http://dev.mysql.com/doc/refman/5.6/en/user-variables.html ab "As a general rule, other than in SET statements, you should never assign a value to a user variable and read the value within the same statement." und die folgenden Ausführungen. Besonders kritisch ist dabei, der lesende und schreibende Zugriff während der Bearbeitung eines Datensatzes. Es ist nicht garantiert, dass die Variable erst für die eine Berechnung gesetzt wird und dann für die andere gelesen wird. Es kann auch gut sein, dass sie erst gelesen wird, dabei den Wert des vorhergehenden Datensatzes enthält und die Zuweisung danach erfolgt. Die Reihenfolge der Klauseln gibt nicht zwangsweise die Ausführungsreihenfolge an.

Das ist aber ein Benutzerkommentar und keine offizielle Aussage von MySQL.

Das ist meine Aussage, die ich anhand des Handbuchtexts (dem zitierten und den nachfolgenden Sätzen), ohne die Benutzerkommentare beachtet zu haben, und meinem (Halb-)Wissen getroffen habe. Und ich denke auch nicht, dass das ein alleiniges MySQL-Problem sein soll. Die Reihenfolge der Abarbeitung der Klauseln eines SQL-Statments ist nicht definiert. Man kann es sich logisch zusammenreimen, was generell an Klauseln zuerst und was danach erfolgen muss, aber was innerhalb einer Klausel und was der Optimizer am Ende in welcher Reihenfolge ausführt, ist nicht wirklich beeinflussbar.

dedlfix.