Natürlich dauert die Sortierung nach einer zufälligen Abfrage einige Zeit, aber wenn Sie Probleme mit derselben paginierten Abfrage haben, die regelmäßig verwendet wird, stimmt entweder das Datenbanksetup nicht (keine oder keine Indexierung) usw. Ich bin kein Db-Manager) oder Sie tun Paginierung ernsthaft falsch:
Schrecklich falsch: zB Doing select * from hugetable where somecondition;
in ein Array bekommen die Anzahl der Seiten mit dem array.length wählen Sie die relevanten Indizes und dicard das Array - dann wiederholen Sie dies für jede Seite ... Das ist, was ich ernst falsch nenne.
Die bessere Lösung zwei Abfragen: eine erhält nur die Zählung, dann eine andere bekommen Ergebnisse mit limit
und offset
. (Einige proprietäre Nicht-Standard-SQL-Server haben möglicherweise eine Abfrage Option, ich weiß nicht)
Die schlechte Lösung kann eigentlich ganz okay in kleine Tabellen (in der Tat ist es nicht undenkbar, dass es schneller auf sehr kleine Tabellen ist, weil die Overhead von zwei Abfragen ist größer als alle Zeilen in einer Abfrage zu bekommen.Ich sage es nicht ist so ...) aber sobald die Datenbank beginnt zu wachsen, werden die Probleme offensichtlich.
Wenn Sie sich den Titel anschauen, macht die Frage Sinn, wenn Sie die Frage selbst lesen, hört sie auf, Sinn zu ergeben. –