PHP-Geschwindigkeitstest: mysql_fetch_row vs. mysql_fetch_assoc

PHP Logo
mysql_fetch_row und mysql_fetch_assoc sind PHP-Funktionen zum Auslesen der Daten von Datenbankabfragen. Sie werden im Quellcode oft benötigt und deswegen sollte man sich für die richtige Funktion entscheiden.
mysql_fetch_row liefert ein Array, mit welchem man über den Spaltenindex auf die Daten zugreifen kann. In mysql_fetch_assoc ist kann man über die Spaltennamen zugreifen.
Doch was ist wirklich schneller? Der folgende Test soll und eine Antwort darauf geben.
Funktion mysql_fetch_assoc:
$Ergebnis = mysql_query(„SELECT * FROM tabelle LIMIT 0,100000“);
while($row=mysql_fetch_assoc($Ergebnis)){
$test = $row[’spalte1′].$row[’spalte2′].$row[’spate3′].$row[’spalte4′];
}
Funktion mysql_fetch_row:
$Ergebnis = mysql_query(„SELECT * FROM tabelle LIMIT 0,100000“);
while($row=mysql_fetch_row($Ergebnis)){
$test = $row[0].$row[1].$row[2].$row[3];
}
Dieser Code wurde mit 100, 1.000 und 100.000 Datensätzen getestet (das Limit wurde geändert). In der Tabelle waren 250.000 Datensätze vorhanden. Jeder Test wurde 15-mal gemacht und die hier stehenden Daten sind die Durchschnitte.
Ergebnisse
100 Datensätze
mysql_fetch_row: 0,0018270969391 Sekunden
mysql_fetch_assoc: 0,0030710220337 Sekunden
mysql_fetch_row ist 40% schneller als mysql_fetch_assoc
1.000 Datensätze
mysql_fetch_row: 0,0130335013072 Sekunden
mysql_fetch_assoc: 0,0126913388570 Sekunden
mysql_fetch_assoc ist 3% schneller als mysql_fetch_row
100.000 Datensätze
mysql_fetch_row: 0,9411172231038 Sekunden
mysql_fetch_assoc: 1,2011907100678 Sekunden
mysql_fetch_row ist 22 % schneller als mysql_fetch_assoc
Kompletter Test
Den kompletten Test mit allen Durchläufen kannst du hier herunterladen:
http://blog.stevieswebsite.de/tests/mysql_fetch_row_vs_mysql_fetch_assoc.xls
Fazit
mysql_fetch_row ist schneller als mysql_fetch_assoc. Wenn Du also auch mit Indexen arbeiten kannst, solltest du das tun. Wenn du die Spaltenbezeichnungen trotzdem sehen willst, kannst du diese einfach in den SQL-Befehl packen.
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Über uns

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project