Zum Inhalt springen

[PHP/MySQL] Wo Auswertungen hinlagern


Gast Penman

Empfohlene Beiträge

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...