Frage

Ich brauche in einer Website viele Seiten von Nachrichten angezeigt werden soll.
Soll ich die Paginierung in der db-Abfrage tue mit Limit oder tut es in meinem PHP-Skript schließlich die Ergebnisse zu bekommen?

War es hilfreich?

Lösung

Verwenden Grenze in SQL! Jedes Mal!

Ansonsten sind Sie werfen um wesentlich mehr Daten als nötig, was Ihre Skripte unnötig langsam macht, und wird auf Probleme bei der Skalierbarkeit als die Menge der Daten in Tabellen Erhöhungen führen.

Grenze ist dein Freund!

Andere Tipps

Mit Limit -. Sie wollen nicht aus der Datenbank des Scripting-Engine Datenmengen zu übertragen, wenn Sie es vermeiden können

Wenn Sie nur mit einem DBMS arbeiten wollen, die dies unterstützen, als es auf dem DBMS tun. Wenn Sie andere DBMS in Zukunft unterstützen wollen, dann Anzeige eine Schicht zwischen dem Griff kann auf dem aktuellen DBMS abhängig.

Sie können einige vorhandene Bibliotheken verwenden, Ihnen zu helfen:

Birne :: Pager mit dem Ausgang helfen kann, und den Datenbankverkehr zu begrenzen nur das, was Sie benötigen, können Sie einen Wrapper in den Beispielen verwendet werden, solange mit ihm gekommen.

Hier ist ein Tutorial ich gerade gegoogelt, dass sie alle ...

hat

Neben LIMIT verwenden, würde ich vorschlagen, eine explizite WHERE Klausel mit dem Offset, zu setzen und die Ergebnisse auf dieser Spalte bestellen. Zum Beispiel:

--- First page (showing first 50 records)
SELECT * FROM people ORDER BY id LIMIT 50
--- Second page
SELECT * FROM people WHERE id > 50 ORDER BY id LIMIT 50

dieses weiteren Grenzen die Nummern der Zeilen, zu denen in den gewünschten Bereich zurückgeführt. Mit Hilfe des WHERE Ansatzes (im Gegensatz zu einer LIMIT Klausel mit einem separaten Offset, beispielsweise LIMIT 50,50) ermöglicht es Ihnen, effektiv durch die Datensätze mit anderen natürlichen Tasten mit Paging zu tun, zum Beispiel alphabetisch nach Namen oder nach Datum sortiert.

Persönlich würde ich die Abfrage verwenden, es zu tun. Offensichtlich, dass, wenn Ihr Umgang mit AJAX ändern und so, aber nur eine grundlegende Grenze in der Abfrage zu tun und Ausgabe der Ergebnisse ist einfach und effizient.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top