Qual é a melhor maneira de resultados paginar em php
-
01-07-2019 - |
Pergunta
Eu preciso exibir muitas páginas de notícias em um site.
Devo fazer a paginação na consulta db usando limite ou fazê-lo no meu script php depois de obter todos os resultados?
Solução
Use limite em SQL! Toda vez!
Caso contrário, você está jogando em torno de consideravelmente mais dados do que você precisa, o que torna seus scripts desnecessariamente lento, e vai levar a problemas de escalabilidade como a quantidade de dados em suas tabelas aumenta.
Limite é seu amigo!
Outras dicas
Use limite -. Você não quer massas de transferência de dados a partir do banco de dados para o mecanismo de script, se você pode evitá-lo
Se você só quer trabalhar com um DBMS que suportam isso do que fazê-lo sobre os DBMS. Se você quiser apoiar outros DBMS no futuro, então ad uma camada entre que pode lidar com dependendo do SGBD atuais.
Além de usar LIMIT
, eu sugiro usar uma cláusula WHERE
explícita para definir o deslocamento, e ordenar os resultados na coluna. Por exemplo:
--- 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
A limita ainda mais o número de linhas retornados para aqueles dentro da gama desejada. Usando a abordagem WHERE
(em oposição a uma cláusula LIMIT
com um separado offset, por exemplo LIMIT 50,50
) permite-lhe lidar eficazmente com paginação por meio de registros com outras teclas naturais, por exemplo, em ordem alfabética pelo nome, ou por ordem de data.
Pessoalmente, gostaria de usar a consulta para fazê-lo. Obviamente, isso pode mudar se o seu trato com AJAX e tal, mas apenas fazendo um limite básico na consulta e produzir os resultados é simples e eficiente.