Question

Je dois afficher de nombreuses pages d'informations sur un site.
Devrais-je faire la pagination dans la requête de base de données en utilisant limit ou le faire dans mon script php après avoir obtenu tous les résultats?

Était-ce utile?

La solution

Utilisez la limite en SQL! À chaque fois!

Sinon, vous produisez beaucoup plus de données que nécessaire, ce qui ralentit inutilement vos scripts et risque d'entraîner des problèmes d'évolutivité lorsque la quantité de données dans vos tables augmente.

Limit, c'est votre ami!

Autres conseils

Use limit: vous ne souhaitez pas transférer une masse de données de la base de données au moteur de script si vous pouvez les éviter.

Si vous voulez uniquement travailler avec un SGBD qui le supporte, faites-le sur le SGBD. Si vous souhaitez prendre en charge d’autres SGBD à l’avenir, ajoutez une couche pouvant être gérée en fonction du SGBD actuel.

Vous pouvez utiliser certaines bibliothèques existantes pour vous aider:

Pear :: Pager peut vous aider à afficher le résultat et à limiter le trafic de la base de données à Pour ce faire, vous pouvez utiliser le wrapper fourni dans les exemples fournis.

Voici un didacticiel . Je viens de chercher sur Google, il a tout cela ...

En plus d'utiliser LIMIT , nous suggérons d'utiliser une clause WHERE explicite pour définir le décalage et ordonner les résultats sur cette colonne. Par exemple:

--- 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

Ceci limite davantage le nombre de lignes renvoyées à celles comprises dans la plage souhaitée. L'utilisation de l'approche WHERE (par opposition à une clause LIMIT avec un décalage séparé, par exemple LIMIT 50,50 ) vous permet de gérer efficacement la pagination à travers des enregistrements avec d'autres clés naturelles, par exemple alphabétiquement par nom ou par ordre chronologique.

Personnellement, j'utiliserais la requête pour le faire. Évidemment, cela peut changer si vous utilisez AJAX, etc., mais il est simple et efficace de limiter la requête et de produire les résultats.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top