Statistik – zu viele DB-Zugriffe

Jakob

Jakob

Aktives Mitglied
Thread Starter
Dabei seit
05.01.2004
Beiträge
1.070
Reaktionspunkte
21
Hallo,

in ein Adminsystem habe ich eine Statistik integriert, die per Balkendiagramm für jeden Monat den Anteil an Kontakten von Verkauf, Vermietung und Sonstige angibt.

Für jeden Monat werden drei DB-Anfragen geschickt: eine, wie viele Verkaufs-Kontakte in dem Monat waren, eine wie viele Vermietungs-Kontakte in dem Monat waren und eine für die Sonstigen.

Das multipliziert mit 12 Monaten ergibt ein bisschen zu viele DB-Abfragen für meinen Geschmack, aber wie kann ich das bündeln?

Eine Abfrage sieht so aus:
Code:
SELECT COUNT(*) FROM customers WHERE date LIKE '$Jahr-$Monate[$i]-%' AND contact='Verkauf'
Sie hängen zu dritt in einer for-Schleife, die die Monate durchgeht.

Danke!
 
Zuletzt bearbeitet:
Code:
SELECT COUNT(*) AS anzahl, MONTH(date) AS monat WHERE YEAR(date)=$Jahr AND contact='Verkauf' GROUP BY monat ODER BY monat
So hast Du nur noch 3 Querys, für jeden contact-Typ einen. Wenn Du die Auswertung erst in PHP machst, also praktsich alle Datensätze des Jahres auswählst und erst mit PHP nachzählst wie viele in jedem Monat vorhanden sind, kannst Du's auch mit einem machen.

Aber macht der Aufand überhaupt Sinn? Keine Frage, ich bin auch ein Freund der Optimierung, aber eine Adminseite ist ja nun nichts was alle 10 Sekunden aufgerufen wird.
 
Hallo,

danke erstmal für den Code!

Ich dachte nur es ist vielleicht irgendwie doof, weil eigentlich gibt es nicht 3 sondern 4 Kategorien, also 4*12=48 Abfragen… Oder ist das nicht viel?

Deine Lösung ist auch einfach schöner :)
 
Klar ist 48 viel, wenn man es auch mit 4 oder auch nur mit einem machen kann. Aber es stört eben keinen (ausser vielleicht den Programmierer selbst).
Wenn man sich überlegt dass andere grosse Anwendungen genausoviele Querys bei jedem Aufruf absetzen.
Ich erinnere mich da an diese Forum (vBulletin, damals in der Version 2.nochwas). Ich habe dafür damals einen Mod gebastelt und zu Testzwecken alle Querys mitgelogt. Hier werden bei jedem Seitenaufruf 20-40 Querys abgesetzt.
Möglicherweise hat sich das mittlerweile gebessert. Ich hab mit diesem elenden Stück Software seit damals nichts mehr gemacht, da der Programmierstiel einfach unter aller Sau war. ;)
 
Zurück
Oben Unten