dedlfix: Performanceproblem Umkreissuche

Beitrag lesen

Tach!

Wenn Du unbedingt beim Kreis bleiben willst, musst du aber nicht zweimal dieselbe Berechnung durchführen innerhalb eines Statements. Dafür kannst Du bei  ersten Mal eine benutzerdefinierte Variable belegen und auf diese beim zweiten Mal zugreifen.

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.

dedlfix.