Thread Effiziente SELECTs in MySQL: Insertion order determinieren? (23 answers)
Opened by ptk at 2004-06-08 16:02

ptk
 2004-06-08 18:06
#32221 #32221
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=Dieter,08.06.2004, 15:22][quote=Oesi50,08.06.2004, 14:54]@Dieter
Das würde ich nicht machen, da könnte Dir der Speicher platzen.
[/quote]
Nööö ...
ich lese sowas immer Step-By-Step aus (max. 1000 Datensätze per Durchlauf) und damit wird selbst der kleinste Speicher fertig :)[/quote]
Wuerdest du LIMIT verwenden? Ich versuche es gerade mit
Code: (dl )
1
2
3
4
5
6
7
8
9
10
$i=0;
while(1) {
warn $i;
$sql = qq{SELECT accesslog_id FROM accesslog WHERE accessdate >= "2004-01-01 00:00:00" LIMIT $i,1000};
$sth = $g_dbh->prepare($sql);
$sth->execute;
$x = $sth->fetchall_arrayref;
last if not @$x;
$i+=1000;
}'

Am Anfang werden die Debugpoints noch schnell ausgedruckt, aber je groesser $i wird, desto langsamer wird das SELECT. Und wie es aussieht, wird dieser Code laenger brauchen als die Variante mit MIN(...).

View full thread Effiziente SELECTs in MySQL: Insertion order determinieren?