Mailinglisten-Archive |
Hallo! Ein anderer Lösungsansatz: Du machst einen Select auf die gesamte Menge (ohne limit) fetch't aber nur die ersten 40. Dann die nächsten 40,... Die Gesamwartezeit (bis alle Datensätze am Bildschirm waren) ist bei dieser Lösung weitaus geringer als dein Versuch mit limit.) >Ausserdem muesste ich fuer den Fall, den du meintest, die max.Anzahl >der Rows per CGI mitfuehren, da ein Weiterblaettern ja ein neuer >Skriptaufruf ist. Das müsstest du. (du führst doch wohl auch jetzt schon den mysql-connect handle mit?) Leider dauerts dann bis zu den ersten 40 recht lang wenn die Ergebnisanzahl hoch ist. (Indexes wirken sich auf beide Lösungsansätzte gleich aus) Die restlichen vierziger Pakete sind dann fast nicht messbar schnell. Bei Verwendung von limit ist es umgekehrt: Die ersten vierzig sind (ohne orderby oder groupby) relativ schnell. Es wird dann aber nicht schneller sonder mit jedem vierziger paket langsamer. Wenn das eine Web-Applikation werden soll, ist es natürlich wünschenswerte wenn die ersten 40 schnell sind. (Wer sieht sich die 20te Seite schon an?). Ich würde trotzdem auf limit verzichten und durch die Web-Anwendungslogik versuchen die Ergebnisanzahl zu drücken. Paul P.S: Ich setzte voraus du verwendest kein orderby oder groupby in deinem select, sonst wäre die Performance mit limit sowieso indiskutabel.
php::bar PHP Wiki - Listenarchive