Pregunta

Es una de esas cosas que parece tener una extraña curva donde el más pienso en ello, más me hace sentido.A un cierto punto, por supuesto.Y entonces no tiene sentido para mí en absoluto.

Atención a aclararme?

¿Fue útil?

Solución

Porque en la mayoría de los casos tienes que ordenar los resultados de la primera.Por ejemplo, cuando usted busca en Google, solo se puede visualizar hasta 100 páginas de resultados.No molestan a la clasificación por la página de rango con más de 1000 sitios web para una palabra clave determinada (o combinación de palabras clave).

La paginación es rápido.La clasificación es lento.

Otros consejos

Lubos es correcto, el problema no es el hecho de que se paginación (que requiere una GRAN cantidad de datos que el cable), pero que usted necesita para averiguar lo que realmente está pasando en la página..

El hecho de que usted necesita a la página implica que hay una gran cantidad de datos.Una gran cantidad de datos toma mucho tiempo para ordenar :)

Esta es realmente una pregunta vaga.Necesitaríamos un ejemplo concreto para tener una mejor idea del problema.

Esta pregunta parece bastante bien cubiertos, pero voy a añadir un poco de algo de MySQL específico, ya que las capturas de un montón de gente:

Evite el uso de SQL_CALC_FOUND_ROWS.A menos que el conjunto de datos es trivial, contando los partidos y la recuperación de x cantidad de partidos en dos consultas independientes va a ser mucho más rápido.(Si es trivial, apenas se notará una diferencia de cualquier manera.)

Pensé que significaba la paginación de la página impresa - que es donde yo corte mis dientes.Yo iba a entrar a una gran monólogo acerca de la recopilación de todo el contenido de la página, la posición de un gran número de reglas, constrait motores son bastante útiles) y la justificación...pero al parecer estabas hablando sobre el proceso de organización de la información en las páginas web.

Para que, me imagino la base de datos de éxitos.El acceso a disco es lento.Una vez que lo tienes en la memoria, la clasificación es barato.

Por supuesto, a ordenar una consulta aleatorio toma algo de tiempo, pero si usted está teniendo problemas con el mismo paginado de consulta que se utiliza regularmente, hay algo mal con la instalación de base de datos (incorrectamente de indexación o ninguno en absoluto, demasiado poco de memoria, etc.Yo no soy un db-manager) o que está haciendo la paginación muy mal:

Mal, muy mal:por ejemplo,haciendo select * from hugetable where somecondition; en una matriz de conseguir el número de páginas con la matriz.longitud de recogida en los índices relevantes y dicard la matriz, a continuación, repetir este paso para cada página...Eso es lo que yo llamo mal.

La mejor solución de dos consultas:uno acaba de llegar el conde, a continuación, otro la obtención de resultados mediante limit y offset.(Algunas marcas, no estándar sql server podría tener una opción de consulta, no lo sé)

La mala solución en realidad podría funcionar bastante bien en mesas pequeñas (de hecho no es impensable que es más rápido en tablas muy pequeñas, debido a la sobrecarga de hacer dos consultas es más grande que obtener todas las filas en una consulta.No estoy diciendo que es así que...), pero tan pronto como la base de datos comienza a crecer los problemas se hacen evidentes.

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