Zum Inhalt springen

[PHP/MySQL] Wo Auswertungen hinlagern


Empfohlene Beiträge

Geschrieben

Morgen Community,

ich habe ein einfaches Problem, bei dem ich nicht weiß, wie ich es besser lösen kann.

Es geht mir eigentlich nur um die Performance. Und zwar geht es um folgendes:

Ich habe ein fertiges PHP-Script, welches aber miserabel geschrieben ist. Quellcode darf ich wegen Urheberrecht nicht zeigen, aber ich erkläre kurz:

  • Für alles ein MySQL Query
  • Tabellenschlüssel aus Strings
  • Sehr häufig Stringvergleiche, wo Flags angebracht wären
  • $tabelle_zeile[field] - Alles Denglisch und Konstanten als Arrayfeldbezeichner
  • ...

Nun zu dem Punkt. Die Performance des Scripts wird immer langsamer, weil die Datenbank inzwischen ziemlich groß und mit Hackfixes zugebaut wurde, deswegen ist mir jeder Funken Performance wichtig.

Es geht um eine Logik, zu prüfen, ob ein Tag ein Feiertag ist.

Nach der bisherigen Programmierung, wenn man einen Monat ausgeben möchte, wir in einer Schleife bei jedem Tag ein folgender Query durchgeführt: "select * from feiertage where tag = '$suchdatum'"

Ich bin schwer der Meinung, dass das die schlechteste Lösung ist, die man wählen könnte.

Meine Idee wäre, einfach alle Feiertage im Bereich des Monats vorher abzufragen und in ein Array zu speichern. Während der Schleifendurchläufe, wird dann geprüft, ob der jeweilige Tag in dem Array vorhanden ist (in_array);

Gibt es dagegen etwas auszusetzen?

2. Frage:

Vergleicht man besser ein MySQL Date (2011-17-10) oder lieber Timestamps, die vorher umgewandelt werden?

Geschrieben

Wieso versuchst du nicht erst, deine Ideen umzusetzen und dann die Geschwinigkeit des Scriptes zu messen?

Dein Query

Deren Query

Deine zukünftigen Querys

Somit hast du für dich ein neues Bild. Das bringt dir am ende am meisten

Geschrieben

Die Zeit.

Warum selbst messen, wenn jemand schon einmal dieses Problem hatte und getestet hat? Es ist ja nicht so, als dass ich jetzt hier hänge und die F5-Taste ausleiere, sondern auch noch andere Dinge zu tun habe ;)

Bei der verkorksten Datenbank traue ich mich kaum noch, Joins zu verwenden, weil diese in Verbindung mit einem SUM() den Server 30 Sekunden lang zählen lassen.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...