Jörg Peschke: LIMIT oder Begrenzung der ResulSets schneller?

Beitrag lesen

Hallo zusammen,
Ich hätte da mal interessehalber eine Frage, die jüngst bei einem Projekt aufgetaucht ist:

Nehmen wir an, ich will eine sortierte Liste einer DB abrufen:

SELECT * FROM tabelle
ORDER BY irgendwas;

So. Jetzt möchte ich aber nur die ersten X einträge haben.
Kann ich natürlich so machen:

SELECT * FROM tabelle
ORDER BY irgendwas LIMIT 0,10;

(oder so ähnlich, genauen Syntax hab ich grad nich im Kopf).

Ich könnte aber auch...
...das Statement von oben nehmen, aber nicht alle ResultSets holen, z.b.:

ResultSet rs = statement.execute();
int cnt = 0;
while ((rs.next()) && (cnt < 10)) {
   // Tu irgendwas
   cnt++;
}

Welche Lösung ist schneller? Ist eine schneller? Oder hängt es vom DBMS ab, wie genau LIMIT implementiert wurde?

Für mein Projekt hat sich die Frage  dann in sofern als hinfällig dargestellt, da das verwendete DBMS kein LIMIT unterstützt - aber wissen würd ichs doch ganz gerne :)

Grüße,
Jörg