Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[PHP/MySQL] Wo Auswertungen hinlagern

Empfohlene Antworten

Veröffentlicht

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?

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

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.