Rechenoperationen von MySQL machen lassen
Bei den ganzen Codenschnipseln und Tutorials im Internet fäll auf, dass viele MySQL nur zum sturen eintragen, updaten und auslesen von Daten nutzen. Der ganze technische Aufwand wird von PHP erledigt. Und das, obwohl man zum Beispiel Rechenoperationen viel bequemer mit MySQL abwickeln kann.
Es kommt oft vor, dass man das Ergebnis einer Spalte mit einer Rechnung updaten will. Viele tun es sich dann an, dass sie vorher mit SELECT auslesen was in der Spalte steht, den Wert in einer Variabel speichern, und diesen dann beim Updaten verwenden:
Tatsächlich is es aber unnötig das so zumachen, weil MySQL das selbst kann! Man kann einfach Rechenoperationen mit einer Spalte machen:
// prüfen ob verkürzte Schreibweise += sogar geht
Aber nicht nur das, man kann sogar mit zwei Spalten rechnen, ohne zu wissen was drin steht:
Das Ganze funktioniert mit Minus (-), Plus (+), Durch (/) und Mal (*). Darüber hinaus hat MySQL aber auch noch komplexe mathematische Funktionen wie Pi, Cosinus, Sinus und dergleichen.
Lässt man die Datenbank mehr machen, spart man sich nicht nur PHP-Quelltext sondern auch Performance. Zum einen, weil man weniger mysql_query absetzen muss, zum anderen, weil die Datenbank das schneller erleligt.
Es kommt oft vor, dass man das Ergebnis einer Spalte mit einer Rechnung updaten will. Viele tun es sich dann an, dass sie vorher mit SELECT auslesen was in der Spalte steht, den Wert in einer Variabel speichern, und diesen dann beim Updaten verwenden:
<?php
$query = mysql_query('SELECT summe FROM tabelle WHERE id=386');
$result = mysql_fetch_object($query);
mysql_query('UPDATE tabelle SET summe='.($result->summe+815).' WHERE id=386');
?>Tatsächlich is es aber unnötig das so zumachen, weil MySQL das selbst kann! Man kann einfach Rechenoperationen mit einer Spalte machen:
<?php
mysql_query('UPDATE tabelle SET summe=summe+815');
?>// prüfen ob verkürzte Schreibweise += sogar geht
Aber nicht nur das, man kann sogar mit zwei Spalten rechnen, ohne zu wissen was drin steht:
<?php
mysql_query('UPDATE tabelle SET summe=summe+anderespalte');
?>Das Ganze funktioniert mit Minus (-), Plus (+), Durch (/) und Mal (*). Darüber hinaus hat MySQL aber auch noch komplexe mathematische Funktionen wie Pi, Cosinus, Sinus und dergleichen.
Lässt man die Datenbank mehr machen, spart man sich nicht nur PHP-Quelltext sondern auch Performance. Zum einen, weil man weniger mysql_query absetzen muss, zum anderen, weil die Datenbank das schneller erleligt.
Für solche einfache Operationen ist das durchaus geeignet. Der Query, den du mir gestern gezeigt hast in dem SIN, COS, uvm. vorkam ist meiner Meinung nach mit Vorsicht zu genießen. Werden solche Queries zu oft ausgeführt, ist das in meinen Augen zu heftig für die Datenbank und man sollte die Last doch lieber einem Script aufbürden.
Ja die last von dem Query den ich dir gezeigt hab der wird auf ein ganzes Cluster aufgeteilt.



auch wenn es nichts zu besondere ist, gefällt mir es doch gut :) danke für die kurzen infos