» Benchmark: Prepared Statements in Array

mkfile functionNeuen Thread eröffnenNeue Antwort erstellenBenchmark: mysql, mysqli - Buffer, Cache und Prepared Stmt
AutorNachricht
Administrator 

Name: Marc
Geschlecht:
Anmeldedatum: 28.08.2004
Beiträge: 52420
Wohnort: Lohmar


Meine eBay-Auktionen:
09.10.2009, 18:39
zitieren

Hi,

hier die Resultate:
/*
// 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ß


pn email
Gast 
09.10.2009, 18:39
zitieren

Mach mit!

Wenn Dir die Beiträge zum Thread "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:



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...


Neuen Thread eröffnenNeue Antwort erstellen
Ähnliche BeiträgeRe:
Letzter 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
1
1.074
09.10.2009, 22:59
mgutt
Struct Array char array eingeben
Guten Tag, bin neu hier :) wollte mir ein bisschen Hilfe suchen für mein kleines Programm. Hab mir ein Struct erstellt mit einer Funktionsvariable (array) mit 3 Komponenten. Die Größe des Array sollte sich auf 20 Felder begrenzen welche ich nochmals...
[C]von Noob
2
266
01.06.2020, 20:20
Noob
 Einfaches MySQL Benchmark PHP Skript (SELECT BENCHMARK)
Einfaches Skript um MySQl zu benchmarken: <?php $link = mysqli_connect&#40;"localhost", "root", ""&#41;; /&#x2A; check connection &#x2A;/ if &#40;mysqli_connect_errno&#40;&#41;&#41;...
[Allgemein]von mgutt
0
271
19.01.2017, 12:19
mgutt
Array befüllen
Hallo liebe Gemeinde, ich bin gerade am Java erlernen und habe folgendes Problem: In einem Array sollen per Eingabe Breite/Länge/Höhe an einem Index im Array übergeben werden. Ich schaffe es nicht, diese drei Werte ins Array zu schreiben. Das ist mein...
[Java]von Columbus
0
370
26.05.2021, 15:10
Columbus
Array Ausgeben
Hi Leute, habe gerade folgenden Code verfasst... public class Array { public static void changeArray(int[] array) { for(int i= 0; i < array.length; i++) { if(array[i] % 2==0) { array[i]= array[i]*-1; } else { array[i]=array[i]*10; } } } public static...
[Java]von DeppJonez
1
359
01.02.2017, 19:42
angemon
array in funktion
Hallo , ich möchte 4 zahlen nach der Größe sortieren, das ist für mich Jetzt kein Problem, allerdings möchte ich die Sortierung in einer Funktion machen. Aber die zahlen sollen trotzdem in der main ausgegeben werden also call by reference, kann mir...
[C++]von arti1012
1
356
28.06.2015, 13:33
arti1012
Ausgabe Array Länge
Hallo zusammen, ich bin gerade am verzweifeln. Ich versuche ein "Int"-Array auszugeben. Dies mache ich über sizeof(array)/sizeof(int). Hierbei werden aber nicht die richtigen Werte ausgeben. Setze ich die Werte manuell passt es. Wo liegt den...
[C]von freakontour
2
341
19.04.2020, 20:29
freakontour
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...
von R3DEX
79
3.453
28.04.2011, 05:26
nfs_freak
SSD Benchmark: 4K Schreiben ist langsam?
Ich habe eine 850 Pro und nach einem Test mit AS SSD erscheint mir der 4K Schreibwert zu gering zu sein. Erst mal hier der Wert meiner alten 840...
von mgutt
5
1.446
08.12.2015, 17:52
Headshot91
SanDisk Extreme 16 GB Benchmark
Vielleicht kann ja jemand die Info gebrauchen. Hab den Stick...
von mgutt
0
109
09.05.2014, 07:23
mgutt
© 2004 - 2024 www.programmierer-forum.de | Communities | Impressum |