dedlfix: Performance MySQL updaten

Beitrag lesen

Tach!

Wenn du die Werte per Ausdruck in einem SQL-Statement berechnen kannst, also keine externen Daten benötigst, dann kannst du dich auf lediglich ein Update-Statement beschränken. Also gemäß diesem Prinzip:

UPDATE tabelle SET feld = feld + 1;

Doch ich brauch Werte aus 3 anderen Tabellen. Wäre dann die frage ob das mit Joins auch geht? Und leicht modifizierter rechnung etwa:

$a = $o * (1+ $e);
$b = $o * (1- $e);
$d = sqrt(pow($a * cos($alpha), 2) + pow($b * sin($alpha), 2));
$om = sqrt($G * ($sm + $pm) * ((2 / ($d * pow(10, 3))) - (1 / ($a * pow(10, 3))))) / ($o * pow(10, 3));
$alpha += $om * ( 600 ) * $t;

Ja, prinzipiell kann man bei einem UPDATE auch andere Tabellen joinen. Nur ein Subselect auf dieselbe Tabelle geht bei einem Update nicht, aber das wirst du hier nicht brauchen. Die Länge der Formel sollte auch kein Problem sein, es wird nur unübersichtlich und du musst sie dann als Einzeiler schreiben. Lediglich einmalig berechnete Werte könnte man vor dem UPDATE berechnen und in einer User-defined Variable ablegen.

Alternativ kannst du die Berechnung in eine Stored Function auslagern. Siehe Stored Programs and Views und CREATE PROCEDURE and CREATE FUNCTION Syntax.

dedlfix.