phpbar.de logo

Mailinglisten-Archive

[php] Geschwindigkeit von php/mysql_fetch_array

[php] Geschwindigkeit von php/mysql_fetch_array

saschagros at bluewin.ch saschagros at bluewin.ch
Fre Dez 15 10:13:52 CET 2006


Michael Borchers hat geschrieben..
> macht es dabei einen wirklichen unterschied ob ich 
mysql_fetch_assoc
> oder mysql_fetch_array MYSQL ASSOC nehme? gibt es da noch
> einmal nen performance-push? 

Ich denke nicht. Das ist nur eine Vermutung, aber ich gehe davon 
aus, das eine der beiden Möglichkeiten bloss ein Alias für die andere 
Funktion ist und das die gleiche Funktionalität nicht zweimal 
programmiert ist.

Mir stellt sich bei deinem Script ganz allgemein die Frage, ist es 
denn nötig das 3000 Datensätze (Vielleicht schon bald noch einige 
tausend mehr) wirklich alle auf der gleichen Seite dargestellt werden 
müssen? Es ist ja HTML und nicht ein CVS/XML oder sonstiger Export. 

Genial für solche Sachen finde ich Structures_DataGrid[1]. Dieser 
Klasse muss man bloss sagen, wie und wo es die Daten holen soll 
(Datenbank, XML, ...) und in welchem Format sie dargestellt werden 
sollen (HTML, XML, CVS, Excel, ...). Dann wird automatisch ein Paging 
erstellt, man kann sortieren, genau bestimmen welche Felder angezeigt 
werden sollen und z.B. auch Callbacks für bestimmte Spalten 
definieren, so das beliebig komplexe Daten berechnet und angezeigt 
werden können. Dazu noch ein einfaches Such-Formular erstellen und 
die Bedienbarkeit sollte mindestens so gut sein wie zuvor.

Wenn das nicht möglich ist, ist Caching vielleicht eine 
Alternative. Falls sich die Daten in der Tabelle weniger häufig 
ändern als sie angezeigt werden, kann man den ganzen Output ja cachen 
und nicht jedesmal neu berechnen. Auch dafür hat PEAR verschiedene 
Pakete, zum Beispiel Cache_Lite [2]. Entweder kann man den Cache z.B. 
jede Stunde neu generieren lassen, oder man löscht den Cache explizit 
überall wo ein INSERT/UPDATE/DELETE auf die jeweilige Tabelle gemacht 
wird. Je nachdem wie eine Anwendung aufgebaut ist, lässt sich das mit 
mehr oder weniger Aufwand machen.

Gruss Sascha

PS: Sorry, falls das einen neuen Thread gibt, mein Webmail-Client 
ist leider unfähig ;)

[1] http://pear.php.net/package/Structures_DataGrid
[2] http://pear.php.net/package/Cache_Lite



php::bar PHP Wiki   -   Listenarchive