Pregunta

Necesito mostrar muchas páginas de noticias en un sitio.
¿Debo hacer la paginación en la consulta de base de datos usando límite o hacerlo en mi script php después de obtener todos los resultados?

¿Fue útil?

Solución

¡Usa límite en SQL!¡Cada vez!

De lo contrario, estará generando muchos más datos de los necesarios, lo que hará que sus scripts sean innecesariamente lentos y provocará problemas de escalabilidad a medida que aumente la cantidad de datos en sus tablas.

¡El límite es tu amigo!

Otros consejos

Límite de uso: no desea transferir grandes cantidades de datos desde la base de datos al motor de secuencias de comandos si puede evitarlo.

Si solo desea trabajar con un DBMS que admita esto, hágalo en el DBMS.Si desea admitir otros DBMS en el futuro, agregue una capa intermedia que pueda manejarse según el DBMS actual.

Puede utilizar algunas bibliotecas existentes para ayudarle:

Pera::Buscapersonas puede ayudar con el resultado y, para limitar el tráfico de la base de datos solo a lo que necesita, puede utilizar un contenedor proporcionado en los ejemplos que lo acompañan.

Aquí está un tutorial Acabo de buscar en Google que lo tiene todo...

Además de usar LIMIT, sugeriría usar un explícito WHERE cláusula para establecer el desplazamiento y ordenar los resultados en esa columna.Por ejemplo:

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

Esto limita aún más el número de filas devueltas a aquellas que se encuentran dentro del rango deseado.Utilizando el WHERE enfoque (a diferencia de un LIMIT cláusula con una compensación separada, p. LIMIT 50,50) le permite abordar eficazmente la paginación de registros con otras claves naturales, p.alfabéticamente por nombre o por orden de fecha.

Personalmente, usaría la consulta para hacerlo.Obviamente, eso puede cambiar si trabaja con AJAX y demás, pero simplemente hacer un límite básico en la consulta y generar los resultados es simple y eficiente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top