MyBatis RowBounds nicht beschränken, query-Ergebnisse

Ich entwickle eine zustandslose API, muss die Paginierung unterstützt.

Ich eine Oracle-Datenbank verwenden.
Ich benutze Feder mit MyBatis für den Datenbank-Zugriff.

Aus der Dokumentation, verstehe ich, dass ich das RowBounds Klasse, um die Anzahl der von der Abfrage zurückgegebenen Zeilen.

Allerdings scheint es, dass es keine spezielle Optimierung durchgeführt, um die Abfrage zu unterstützen Paginierung.

Zum Beispiel, wenn ich RowBounds offset 100 mit 50 Datensätzen, würde ich erwarten, dass die Abfrage auf die folgenden Hinzugefügt:

(original query with the where clause...)
and ROWNUM < 150
and ROWNUM >= 100

Aber da ist nichts, es ist nur die Abfrage, die ich manuell festgelegt.

Dies ist schrecklich für die Leistung, da könnte ich mehrere tausend Ergebnisse.

Was mache ich falsch?

Dank.

InformationsquelleAutor odedia | 2014-06-19

Schreibe einen Kommentar