Mailinglisten-Archive |
Dr. Volker Göbbels wrote: > Ahoi ;) > >> Wenn du oft in den Datensätzen blättern musst, empfehle ich dir, die >> ganze Ergebnismenge zuerst in ein array zu kopieren, z. B. mit >> array_push. Doofe Idee, denn es gibt auch den Operator [], der das gleiche macht, nur schneller ist :-P. >> >> http://www.php.net/manual/de/function.mysql-fetch-array.php#76598 > > *ürgs* Aber nur, wenn die maximal mögliche Datenmenge 1000 Records > (oder so) nicht überschreitet ;) > Wir haben hier einen Kunden, der Tabellen mit 1-50 Mio. Datensätzen > hat. Ein "select *" wäre da der Server Tod ;) > Ich gebe aber zu, daß ich, wenn ich genau kontrollieren kann, wieviele > Datensätze da geflogen kommen, sehr gern zum Beispiel auf ADOdb's > getAll() zurück greife ;o) Du bist dir aber schon im klaren, das php's mysql_*-Funktion oer Standardkonfig alles erstmal cachen, was von mysql zurückkommt und du mit mysql_fetch_* nur über php's cache läufst? Naturlich funktioniert die seek-Funktion auch nichtmehr, wenn man diesen cache nicht verwendet (mysql_unbuffered_query()). Es sollte allerdings auch nicht normal sein, dass man einfach mal select * auf eine Datenbank mit 50M Einträgen laufen lässt. Was will man den mit dem result machen? Wenn es sich nicht gerade um ein backupscript oder sowas handelt erscheint mir das grundsätzlich nicht so schlau. > > Wenn ich einen Algorithmus sehe, der essentiell darauf angewiesen ist, > den "davor stehenden" Datensatz zu lesen, würde ich erst mal davon > ausgehen, daß der Algorithmus anders gebaut werden muß. Jo, das denke ich allerdings auch. Vielleicht solltest du, Reinhold, mal dein Problem schildern, warum du überhaupt auf diese Funktion angewiesen bist... > > Viele Grüße, > Volker Göbbels Yannik
php::bar PHP Wiki - Listenarchive