sql >> Base de Datos >  >> RDS >> PostgreSQL

Si el recuento de PostgreSQL (*) siempre es lento, ¿cómo paginar consultas complejas?

¿Leíste el encabezado de ese artículo?

Tenga en cuenta que el siguiente artículo solo se aplica a las versiones de PostgreSQL anteriores a la 9.2. Ahora se implementan escaneos de solo índice.

Utilice 9.2 y, por lo general, obtendrá resultados mucho mejores. Lea la página wiki de escaneos de solo índice para obtener más detalles.

Dicho esto, en versiones anteriores usando LIMIT y OFFSET generalmente funciona bien. Puede estimar los recuentos de filas (y, por lo tanto, los recuentos de páginas) utilizando las estadísticas de la tabla si no le importa un poco de variación. Consulte "Estimación del recuento de filas" en el artículo al que ya se vinculó.

Paginación usando LIMIT y OFFSET es, en mi opinión, un anti-patrón de todos modos. Muchas veces puede reformular su código de paginación para que use sort_column > 'last_seen_value' LIMIT 100 , es decir, evita el desplazamiento. Esto a veces puede resultar en ganancias de rendimiento muy grandes.