[ erweiterte Suche ]

»Benchmark: Prepared Statements in Array

mkfile functionNeues Thema eröffnenNeue Antwort erstellenDas Thema einem Freund empfehlenDas Thema druckenBenchmark: mysql, mysqli - Buffer, Cache und Prepared Stmt
Seite 1 von 1 [1 Beitrag]
AutorNachricht
Administrator 


Name: Marc
Geschlecht:
Anmeldedatum: 28.08.2004
Beiträge: 39594
Chats: 11125
Wohnort: Hennef


Meine eBay-Auktionen:
09.10.2009, 18:39


Hi,

hier die Resultate:
   Code:
/*
// version 1
// 1. run 0.14501937151
// 2. run 0.145541801453
// 3. run 0.141622686386
// fastest run 0.0934751033783
while ($field = $meta->fetch_field()) {
$row[] = &$fields[$field->name];
}
call_user_func_array(array($stmt, 'bind_result'), $fields);
unset($meta, $row);
$i = 0;
while ($stmt->fetch()) {
foreach ($fields as $k => $v) {
$data[$i][$k] = $v;
}
$i++;
}
unset($stmt);
*/
/*
// version 2
// 1. run 0.163174314501
while ($field = $meta->fetch_field()) {
$row[] = &$fields[$field->name];
}
unset($meta);
call_user_func_array(array($stmt, 'bind_result'), $fields);
while ($stmt->fetch()) {
foreach ($fields as $k => $v) {
$c[$k] = $v;
}
$data[] = $c;
}
unset($stmt);
*/
/*
// version 3
// 1. run 0.164394264222
$bind_result = '$stmt->bind_result(';
while ($field = $meta->fetch_field()) {
$bind_result .= '$fields["'.$field->name.'"],';
}
unset($meta);
eval(rtrim($bind_result, ',') . ');');
while ($stmt->fetch()) {
foreach ($fields as $k => $v) {
$row[$k] = $v;
}
$data[] = $row;
}
unset($stmt);
*/
/*
// version 4
// 1. run 0.202926313878
while ($field = $meta->fetch_field()) {
$row[] = &$fields[$field->name];
}
unset($meta);
call_user_func_array(array($stmt, 'bind_result'), $fields);
$copy = create_function('$a', 'return $a;');
while ($stmt->fetch()) {
$data[] = array_map($copy, $fields);
}
unset($stmt);
*/
/*
// version 5
// 1. run 0.147740311622
// 2. run 0.144599089624
$bind_result = '$stmt->bind_result(';
while ($field = $meta->fetch_field()) {
$bind_result .= '$fields["'.$field->name.'"],';
}
unset($meta);
eval(rtrim($bind_result, ',') . ');');
$i = 0;
while ($stmt->fetch()) {
foreach ($fields as $k => $v) {
$data[$i][$k] = $v;
}
$i++;
}
unset($stmt);
*/
/*
// version 6
// 1. run 0.199761638641
while ($field = $meta->fetch_field()) {
$row[] = &$fields[$field->name];
}
unset($meta);
call_user_func_array(array($stmt, 'bind_result'), $fields);
while ($stmt->fetch()) {
$data[] = array_map($copy, $fields);
}
unset($stmt);
*/
/*
// version 7
// 1. run 0.145406525135
// 2. run 0.147244937418
// 3. run 0.146580169201
// 4. run 0.140648040772 (rtrim removed)
// 5. run 0.138385720253 ($i used as string and counter)
// 6. run 0.142242712975 ($i used as string and counter)
// fastest run 0.0888710021973
$i = '';
while ($field = $meta->fetch_field()) {
$i .= ($i ? ',' : '$stmt->bind_result(') . '$fields["' . $field->name . '"]';
}
unset($meta);
eval($i . ');');
$i = 0;
while ($stmt->fetch()) {
foreach ($fields as $k => $v) {
$data[$i][$k] = $v;
}
$i++;
}
unset($stmt);
*/


Tatsächlich kann man sich aussuchen, ob man nun Version 1 oder 7 nimmt. Von der Geschwindigkeit her macht das keinen Unterschied.

Ein Run beinhaltet übrigens den Schnitt aus 100 Durchläufen. In einem Durchlauf wurde das jeweilige Script 50x ausgeführt. Die Konnektierung zur Datenbank fand nur einmal pro Durchlauf statt (um einen realen Einsatz nachahmen zu können).

Gruß
Nach obenprofil pn email
Gast 

09.10.2009, 18:39


Mach mit!

Wenn Dir die Beiträge zum Thema "Benchmark: Prepared Statements in Array" gefallen haben oder Du noch Fragen hast oder Ergänzungen machen möchtest, solltest Du Dich gleich bei uns anmelden:

    » Anmelden

Registrierte Mitglieder genießen die folgenden Vorteile:
✔ kostenlose Mitgliedschaft
keine Werbung
✔ direkter Austausch mit Gleichgesinnten
✔ neue Fragen stellen oder Diskussionen starten
✔ schnelle Hilfe bei Problemen
✔ Bilder und Videos hochladen
✔ und vieles mehr...

Verwandte Suchbegriffe

prepared statements arrays, $stmt->bind_result, unset($stmt), php prepared statement parameter array, prepared statement php array, prepared statement array, bind_results array, "bind_result" php array, benchmark 31925, mysqli fetch array prepared, stmt meta, prepared benchmark, prepared statements fetch array
Nach oben
Seite 1 von 1 [1 Beitrag]
Neues Thema eröffnenNeue Antwort erstellen
Ähnliche BeiträgeRe:HitsLetzter Beitrag
Benchmark: mysql, mysqli - Buffer, Cache und Prepared Stmt
Hallo, ich habe mir mal die Mühe gemacht und die verschiedensten Varianten, wie man eine Abfrage gestalten könnte, in einen Benchmark gepackt und ausgewertet. Hier erstmal die umfangreichen Logs: /* // vars $id = 1111; $email =...
[PHP]von mgutt
144709.10.2009, 22:59
mgutt
3D Benchmark
Wollte mal gucken was eure PC´s so hergeben mein pc system: Asus Crosshair ATI 2900 GT Kingstone HyperX DDR1066 2GB standart SPD mit CL 5 xD und kleiner rein hier mal nen 3Dmark03 run mit meiner neuen CPU davor AMD X2 BE 2300 ca 21000...
Seite 2, 3, 4, 5, 6, 7, 8von R3DEX
79227228.04.2011, 05:26
nfs_freak
preg_replace / preg_match Benchmark
Danach hatte ich eigentlich gesucht und bin auf etwas vergleichbares gestoßen: http://benchmark.nophia.de/benchmarks-textverarbeitung-k-2-texte-mit-mindestens-zwei-vokalen-b-21.html Dazu hätte ich direkt einen Verbesserungsvorschlag: <?PHP ...
[PHP]von mgutt
024826.02.2009, 13:25
mgutt
Benchmark: $gentime vs. filemtime (Filecache)
Hi, wegen einem Blogartikel , habe ich mich dran gemacht und mal getestet, welche Art der Speicherung Prüfung von Filecaches am schnellsten ist (z.B. wenn man Datenbankabfragen zwischenspeichert, statt sie erneut auszuführen). Bisher nutzte ich...
[PHP]von mgutt
247014.10.2009, 01:04
mgutt
Intel X25-M G2 160 GB Benchmark (SSDSA2M160G2GC)
Hi, von meiner neuen Platte hab ich mal ein Benchmark gemacht: HD Tune Pro: INTEL SSDSA2M160G2GC Benchmark Test capacity: full Read transfer rate Transfer Rate Minimum : 128.2 MB/s Transfer Rate Maximum : 198.2 MB/s Transfer Rate...
von mgutt
426621.03.2011, 18:23
mgutt
© 2004 - 2012 www.programmierer-forum.de (srv02) | Communities | Impressum