Thread Datenbank-Anfrage optimieren
(4 answers)
Opened by stb2050 at 2003-11-22 13:24
Hi Ihr,
DB-Anfragen mache ich momentan immer so: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 $anfrage = "SELECT userid, status FROM tabelle1 WHERE username='$username';"; &datenbank; $ergebnisse = $sth->fetchall_arrayref( { userid => 1, status => 1 } ); foreach(@$ergebnisse) { $userid = $_->{userid}; $status = $_->{status}; } &datenbank sieht so aus: Code (perl): (dl
)
1 2 3 4 5 6 7 8 sub datenbank { if ($anfrage eq "") { $message = "Keine MySQL-Anfrage"; &error_end; } use DBI; my $dbh = DBI->connect("DBI:$dbdriver:$dbdatabase:$dbhost:$dbport", $dbuser, $dbpassword, { PrintError => 0, RaiseError => 0 } ); $sth = $dbh->prepare($anfrage) || die "Kann Statement nicht vorbereiten: $DBI::errstr\n"; $sth->execute() || die "Kann Statement nicht vorbereiten: $DBI::errstr\n"; } Nun habe ich das Gefühl, das Ganze ist nicht optimal und bei vielen Aufrufen geht es ganz schön auf die Performance des Servers. Habt ihr einen Vorschlag, wie ich das Ganze optimieren kann? Besonders wenn ich weiß, dass nur 1 Datensatz bei herauskommt, wird trotzdem ein @foreach gemacht. Bekomme ich das in diesem Fall auch ohne hin? Viele Grüße & vielen Dank Steffen |