Hallo,
ich habe mehrere tw. noch nicht veröffentliche Projekte aufgekauft und möchte diese nun nach und nach (und nachdem diese meinen Vorstellungen entsprechen) veröffentlichen.
Nun habe ich bei einem Klick-Projekt das Problem, das ich die Datenbankabfrage betr. der noch nicht vom User geklickten Banner/Paidmails usw. als nicht effizient betrachte.
Die DB-Tabellen sehen (abgewandelt) so aus:
Derzeit erfolgt die Abfrage über NOT IN, wobei die Werte hierfür aus der TB klicks gelesen und aufgereiht werden – was natürlich mit der Zeit eine immens große Query ergibt – zumal ich ja hier auch zwei querys benötige.
Mein Grundgedanke ist nun, dieses über LEFT JOIN zu umgehen (Abfrage aller Einträge aus TB banner, wobei die jw. Banner-ID nicht in der TB klicks mit Auszeit > $jetzt sein darf ), da ich mir über diesen Weg eine bessere Performance verspreche.
Allerdings bekomme ich irgendwie die query nicht hin, d.h. ich habe immer ein Null-Resultat.
Daher meine Fragen an euch:
a) Habe ich mit meinem Performance-Gedanken recht ?
b) Wie müsste ich die query korrekt aufbauen (da scheitere ich doch wohl an meinen Fähigkeiten) ?
Viele Grüße
ITCF
ich habe mehrere tw. noch nicht veröffentliche Projekte aufgekauft und möchte diese nun nach und nach (und nachdem diese meinen Vorstellungen entsprechen) veröffentlichen.
Nun habe ich bei einem Klick-Projekt das Problem, das ich die Datenbankabfrage betr. der noch nicht vom User geklickten Banner/Paidmails usw. als nicht effizient betrachte.
Die DB-Tabellen sehen (abgewandelt) so aus:
PHP:
TB klicks
User-ID Banner-ID Auszeit usw…
(Auszeit beschreibt hierbei das Ende der Reload-Sperre als Timestamp)
PHP:
TB banner
Banner-ID usw…
Derzeit erfolgt die Abfrage über NOT IN, wobei die Werte hierfür aus der TB klicks gelesen und aufgereiht werden – was natürlich mit der Zeit eine immens große Query ergibt – zumal ich ja hier auch zwei querys benötige.
Mein Grundgedanke ist nun, dieses über LEFT JOIN zu umgehen (Abfrage aller Einträge aus TB banner, wobei die jw. Banner-ID nicht in der TB klicks mit Auszeit > $jetzt sein darf ), da ich mir über diesen Weg eine bessere Performance verspreche.
Allerdings bekomme ich irgendwie die query nicht hin, d.h. ich habe immer ein Null-Resultat.
Daher meine Fragen an euch:
a) Habe ich mit meinem Performance-Gedanken recht ?
b) Wie müsste ich die query korrekt aufbauen (da scheitere ich doch wohl an meinen Fähigkeiten) ?
Viele Grüße
ITCF