Mailinglisten-Archive |
Quoting Nikolas Hagelstein <hagelstein at hauptsache.net>: > > mir fuer die Anzeige jeweils das gesamte Recordset ("SELECT > > ART_ID, COUNT(*) > > FROM CLICKS GROUP BY ART_ID, ORDER BY COUNT(*), ART_ID") holen, > > den aktuellen > > Artikel_ID suchen und dann den vorigen und den naechsten Satz im > > Recordset > wird es ..ca 18k artikel.. > wenn man das in ner schleife durchtraversieren muss ... Also ich weis jetzt nicht, ob und wie es unter mysql geht, aber unter der ADO2.7 gibt es eine SEEK-Funktion, die recht fix ist. Haengt natuerlich von der darunterliegenden DB und deren Konfiguration ab. > > eine temporaere Tabelle arbeiten, in welche du die Ergebnisse > > fuetterst, um sie fuer die Session zu halten. > das koennte schwierig werden, je nachdem wieviel leute da gerade drauf > zugreifen, hat man dann ja ziemlich viele tabellen.... Dann halt nicht auf die Session temporaer halten, sondern global, und eine timer-variable irgendwo entscheidet, dass die Daten refreshed werden muessen. > Wie machen das andere DBs ? mit views wahrscheinlich oder ? Erstens mal so, aber auch mit "gecacheten" Daten. ebay z.B. aktualisiert seine Geboteseiten auch nicht mit jedem Klick. > Wenn das nicht realtime sein muesste waere das ja einfach, dann koennte > man das ranking einmal pro tag/monat erstellen. Einmal alle 10 Minuten oder spaetestens beim naechsten Request waere doch schon fein, oder? Du kannst ja jedem deiner Clienten unter die Liste ein "Statistik erstellt am xx.xx.xxxx um yy:yy:yy" setzen, und niemand wuerde meckern. Wieso muss das denn Realtime sein? In dem Moment, wo du die Daten anzeigst, sind sie ja auch schon nicht mehr aktuell. Mach dir doch mal eine Testkonstruktion, wo du eine Tabelle Clicks(Art_ID INT (11) Primary Key, Datum INT(11)) strickst, die du mit Randomdaten von meinetwegen 2,5 Millionen Clicks zu deinen Artikeln fuetterst und dann miss ein paar mal die Performance beim Erstellen des Queries. Das sollte relativ schnell zu programmieren sein. Pack das ganze Ergebnis mal in eine temporaere Tabelle mit Index auf Art_ID und suche nach dem aktuellen Satz. > noch irgendne andere idee ? Vielleicht was mit gecacheten Zwischenergebnissen je nach Beduerfnissen, um pro Tag auf maximal die Anzahl an Artikeln an Records zu kommen. Oder eine weitere Spalte, die einen Countwert enthaelt. Dann koennte man in einer Maintainfunktion den Countwert aller Klicks bereits in der Kerntabelle pro Tag zusammenfassen. Fuer mehr Ideen bekomme ich ein Beraterhonorar ;-) ciao! Kai Hackemesser -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive