PostgreSQL LIMIT
La cláusula `LIMIT` de PostgreSQL se utiliza para limitar el número de filas devueltas por una consulta. Es especialmente útil para paginar resultados o recuperar un subconjunto de datos.
Utilización
La cláusula `LIMIT` se aplica para controlar el número máximo de filas devueltas por una consulta SQL. Se suele utilizar junto con `ORDENAR POR` para recuperar las N primeras filas de un conjunto de resultados.
SELECT column1, column2, ...
FROM table_name
[ORDER BY column_name]
LIMIT number_of_rows;
En esta sintaxis, `LIMIT número_de_filas` especifica el número máximo de filas a devolver.
Ejemplos
1. Límite básico
SELECT *
FROM products
LIMIT 5;
Este ejemplo recupera las 5 primeras filas de la tabla `productos`.
2. Límite con Orden
SELECT name, price
FROM products
ORDER BY price DESC
LIMIT 3;
Esta consulta devuelve los 3 productos más caros ordenando los resultados en orden descendente del precio.
3. Límite con Desplazamiento
SELECT order_id, customer_name
FROM orders
ORDER BY order_date
LIMIT 10 OFFSET 10;
Esta consulta obtiene 10 filas a partir de la fila 11, útil para la paginación cuando se combina con `ORDENAR POR`.
Consejos y buenas prácticas
- Utilízalo con ORDENAR POR. Empareja siempre `LIMIT` con `ORDER BY` para garantizar resultados coherentes, especialmente cuando la tabla no tiene clave primaria ni identificador único.
- Considera la paginación. Utiliza `LIMIT` junto con `OFFSET` para recuperar datos paginados. Ten en cuenta que utilizar desplazamientos grandes puede afectar al rendimiento, ya que PostgreSQL debe escanear las filas para llegar al desplazamiento especificado.
- Optimiza el rendimiento. Ten en cuenta las implicaciones para el rendimiento cuando utilices `LIMIT` en grandes conjuntos de datos; considera la posibilidad de utilizar índices. Para grandes desplazamientos, explora las técnicas de optimización de consultas.
- Combínalo con restricciones. Utiliza `LIMIT` con `WHERE` para refinar aún más el conjunto de datos antes de limitar el resultado.
- Explora alternativas. Considera la posibilidad de utilizar la cláusula `FETCH FIRST` como alternativa a `LIMIT`, sobre todo si estás más familiarizado con las normas SQL.
- Comprende los casos límite. Si pones "LÍMITE" a cero, obtendrás un conjunto de resultados vacío. Utilizar un número negativo para `LÍMITE` no es válido y provocará un error.