sgraphic
Ensign
- Registriert
- Okt. 2010
- Beiträge
- 210
Hallo Community, hi coder.
Seit zwei Tagen geistert in mir eine Idee und eine möglicherweise simple Frage.
Aber hier würde ich gerne die Meinung der anderen hören.
Wie Ihr schon im Titel entnehmen könnt, geht es um simple mathematische Berechnung.
Aber erstmal der Hintergrund (Architektur):
Es geht um einen simplen Webspacehoster (Shared Hosting, also kein ded. Server)
Der Webserver mit 100-1000 anderen Usern, die sich die Leistung teilen.
Gilt auch für den Datenbankserver (shared)
(achtet bitte nicht auf die Syntax, die ich hier verwende, denn ich möchte nicht den fertigen Code)
Gehen wir mal von einer simplen Berechnung:
Ergebnis = Wert1 * Wert2 / Wert 3
Die Reihenfolge der gestellten Fragen haben keine Priorisierung
1) Berechnung direkt im SQL
sql-Ergebnis = Wert aus Spalte1 * Wert aus Spalte 2 / Wert aus Spalte 3
Ich könnte mir sogar vorstellen, dass nach der Berechnung die Werte in die Datenbank zurückgeschrieben werden.
Warum diese Theorie: Möglicherweise ist der Datenbankserver performanter?
Was mich stört: Man würde ja die Werte aus Inputfeldern für die Berechnung ziehen (PHP), die per SQL-Query berechnen und dann an die Datenbank übergeben. Klingt nicht nach einem üblichen Vorgehen bei einer relationalen Datenbank.
2) Berechnung ohne die Ergebnisse in die Datenbank zu schreiben (PHP)
Erstmal per SQL die benötigten Werte ziehen und dann im Script berechnen.
Ergebnis = Wert aus Spalte1 * Wert aus Spalte 2 / Wert aus Spalte 3
Warum diese Theorie: Man würde die Last zwischen den beiden "Hosts" aufteilen? (Wenn man von Last reden kann)
Was mich stört: Man würde immer wieder erneut die Berechnung im Script durchführen, was wohl die Idee mit der Last widersprechen würde.
3) Alle benötigten Werte im Script berechnen und dann alles in die entsprechenden Spalten packen.
(Natürlich davon ausgehend, dass es weitere Berechnungen gibt mit weiteren unterschiedlichen Ergebnissen)
Grob dargestellt:
Ergebnis1 = WertVariable1 * WertVariable2 / WertVariable3
Ergebnis2 = WertVariable1 / WertVariable3
Ergebnis3 = (WertVariable4 + WertVariable5) * WertVariable1
Warum diese Theorie: Man berechnet die benötigten Werte alles im Script und schreibt dann alle Werte in die entsprechenden Spalten (Wie unter 2, bloß besser)
Was mich stört: Die Berechnungen finden dann auf dem Webhost.
PHP-Limits, die stören könnten (was ich mir eigentlich nicht vorstellen kann) - die Serverseitige php.ini ist nicht konfigurierbar.
Last nur noch auf dem Webhost (wobei das marginal wäre), aber ich weiß, dass einige Hoster hier etwas allergisch reagieren, wenn der Webhost (unter Last steht) und möglicherweise andere User mitzieht
Es ist erstmal nicht vorgesehen, dass die Werte in den DB-Spalten angepasst werden. Vielleicht dann erst im zweiten Step mit einem "Edit-Button"
Fazit
Ich persönlich tendiere zu Punkt 3). Ich lasse mich aber auch des Besseren belehren.
Vielleicht gibt es auch eine 4.te oder 5.te Methode. Hier würde ich gerne auf die Erfahrungen der Community zurückgreifen.
Ich weiß, dass heutige SharedWebhosts recht performant sind und vielleicht ist das Thema Last gar kein Thema.
Man möchte aber dann im Code das Beste rausholen.
(Und bitte keine Kommentare wie "Google doch", denn ich brauche einfach ein bißchen Brainstorming)
Besten Dank jetzt schon
Seit zwei Tagen geistert in mir eine Idee und eine möglicherweise simple Frage.
Aber hier würde ich gerne die Meinung der anderen hören.
Wie Ihr schon im Titel entnehmen könnt, geht es um simple mathematische Berechnung.
Aber erstmal der Hintergrund (Architektur):
Es geht um einen simplen Webspacehoster (Shared Hosting, also kein ded. Server)
Der Webserver mit 100-1000 anderen Usern, die sich die Leistung teilen.
Gilt auch für den Datenbankserver (shared)
(achtet bitte nicht auf die Syntax, die ich hier verwende, denn ich möchte nicht den fertigen Code)
Gehen wir mal von einer simplen Berechnung:
Ergebnis = Wert1 * Wert2 / Wert 3
Die Reihenfolge der gestellten Fragen haben keine Priorisierung
1) Berechnung direkt im SQL
sql-Ergebnis = Wert aus Spalte1 * Wert aus Spalte 2 / Wert aus Spalte 3
Ich könnte mir sogar vorstellen, dass nach der Berechnung die Werte in die Datenbank zurückgeschrieben werden.
Warum diese Theorie: Möglicherweise ist der Datenbankserver performanter?
Was mich stört: Man würde ja die Werte aus Inputfeldern für die Berechnung ziehen (PHP), die per SQL-Query berechnen und dann an die Datenbank übergeben. Klingt nicht nach einem üblichen Vorgehen bei einer relationalen Datenbank.
2) Berechnung ohne die Ergebnisse in die Datenbank zu schreiben (PHP)
Erstmal per SQL die benötigten Werte ziehen und dann im Script berechnen.
Ergebnis = Wert aus Spalte1 * Wert aus Spalte 2 / Wert aus Spalte 3
Warum diese Theorie: Man würde die Last zwischen den beiden "Hosts" aufteilen? (Wenn man von Last reden kann)
Was mich stört: Man würde immer wieder erneut die Berechnung im Script durchführen, was wohl die Idee mit der Last widersprechen würde.
3) Alle benötigten Werte im Script berechnen und dann alles in die entsprechenden Spalten packen.
(Natürlich davon ausgehend, dass es weitere Berechnungen gibt mit weiteren unterschiedlichen Ergebnissen)
Grob dargestellt:
Ergebnis1 = WertVariable1 * WertVariable2 / WertVariable3
Ergebnis2 = WertVariable1 / WertVariable3
Ergebnis3 = (WertVariable4 + WertVariable5) * WertVariable1
Warum diese Theorie: Man berechnet die benötigten Werte alles im Script und schreibt dann alle Werte in die entsprechenden Spalten (Wie unter 2, bloß besser)
Was mich stört: Die Berechnungen finden dann auf dem Webhost.
PHP-Limits, die stören könnten (was ich mir eigentlich nicht vorstellen kann) - die Serverseitige php.ini ist nicht konfigurierbar.
Last nur noch auf dem Webhost (wobei das marginal wäre), aber ich weiß, dass einige Hoster hier etwas allergisch reagieren, wenn der Webhost (unter Last steht) und möglicherweise andere User mitzieht
Es ist erstmal nicht vorgesehen, dass die Werte in den DB-Spalten angepasst werden. Vielleicht dann erst im zweiten Step mit einem "Edit-Button"
Fazit
Ich persönlich tendiere zu Punkt 3). Ich lasse mich aber auch des Besseren belehren.
Vielleicht gibt es auch eine 4.te oder 5.te Methode. Hier würde ich gerne auf die Erfahrungen der Community zurückgreifen.
Ich weiß, dass heutige SharedWebhosts recht performant sind und vielleicht ist das Thema Last gar kein Thema.
Man möchte aber dann im Code das Beste rausholen.
(Und bitte keine Kommentare wie "Google doch", denn ich brauche einfach ein bißchen Brainstorming)
Besten Dank jetzt schon