0Pricing
SQL Academy · Lección

Fundamentos de LIMIT, OFFSET y paginación

Pagine conjuntos de resultados grandes con LIMIT y OFFSET, comprenda sus compromisos de rendimiento y use la paginación por conjunto de claves para un desplazamiento estable.

Fundamentos de LIMIT, OFFSET y paginación es una lección gratuita de SQL Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de SQL Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de SQL Academy incluye 4 lecciones en total.

LIMIT: limitar el resultado

LIMIT n devuelve como máximo n filas:

SELECT * FROM products
ORDER BY created_at DESC
LIMIT 10;

OFFSET: omitir las primeras N

OFFSET k omite las primeras k filas:

-- Rows 11–20 (the second page of 10):
SELECT * FROM products
ORDER BY created_at DESC
LIMIT 10 OFFSET 10;

Paginación = LIMIT + OFFSET

El patrón clásico basado en números de página:

-- Page p (1-based), page size s:
SELECT * FROM articles
ORDER BY published_at DESC
LIMIT s OFFSET (p - 1) * s;

Por qué OFFSET se vuelve lento

OFFSET sigue leyendo internamente todas las filas omitidas:

  • Página 1 de 10 → lee 10 filas
  • Página 1000 de 10 → lee 10 000 filas
  • Página 1 000 000 → lee diez millones

OFFSET es O(offset). Para páginas muy profundas, resulta inutilizable.

Paginación por clave ("método seek")

Avance de página recordando la última clave de ordenación vista:

-- First page:
SELECT * FROM articles
ORDER BY published_at DESC, id DESC
LIMIT 20;

-- Next page — pass the last seen (published_at, id):
SELECT * FROM articles
WHERE (published_at, id) < ($1, $2)
ORDER BY published_at DESC, id DESC
LIMIT 20;

Por qué la paginación por clave es más rápida

La paginación por clave utiliza un escaneo de rango del índice: salta directamente a la fila posterior a la última vista, lee N filas y termina. El coste es O(tamaño de página), independientemente de la profundidad de la página.

LIMIT sin ORDER BY no es determinista

Regla práctica: combine LIMIT siempre con ORDER BY. De lo contrario, la base de datos podría devolver filas distintas en cada llamada.

-- Wrong — results may vary between runs:
SELECT * FROM events LIMIT 10;

-- Right:
SELECT * FROM events ORDER BY id DESC LIMIT 10;

Recuentos totales y paginación

A veces la interfaz necesita el recuento total de filas. Una consulta COUNT(*) independiente es la opción más sencilla, pero puede resultar costosa en tablas grandes:

SELECT COUNT(*) FROM articles WHERE author_id = $1;

-- Alternative for huge tables: estimate from pg_class.reltuples or use approximate counts.

FETCH FIRST (SQL estándar)

Sintaxis de SQL estándar equivalente a LIMIT:

SELECT * FROM products
ORDER BY id
FETCH FIRST 10 ROWS ONLY;

-- With offset:
-- OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY

Cursores para conjuntos de resultados masivos

Para exportar millones de filas, use un cursor de la base de datos o un driver con streaming en lugar de ciclos de LIMIT/OFFSET:

BEGIN;
DECLARE big_cursor CURSOR FOR
  SELECT * FROM events ORDER BY id;
FETCH 1000 FROM big_cursor;
-- ...
CLOSE big_cursor;
COMMIT;

Cuándo está bien usar OFFSET

OFFSET está bien para páginas poco profundas (páginas 1–10 de una interfaz) o para tablas pequeñas. Para paginación profunda, desplazamiento infinito o API, use paginación por clave.

Resumen

LIMIT y OFFSET permiten paginar conjuntos de resultados.

  • Combínelos siempre con ORDER BY
  • OFFSET es lento a gran profundidad: cambie a paginación por clave para páginas grandes
  • FETCH FIRST es el equivalente estándar

Comprobación rápida

¿Cuál es la forma más eficiente de paginar en profundidad en una tabla grande?

Preguntas frecuentes

¿La lección «Fundamentos de LIMIT, OFFSET y paginación» es gratis?

Sí — el texto completo de «Fundamentos de LIMIT, OFFSET y paginación» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de SQL Academy, actualiza a CoddyKit PRO. El curso de SQL Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Fundamentos de LIMIT, OFFSET y paginación»?

Pagine conjuntos de resultados grandes con LIMIT y OFFSET, comprenda sus compromisos de rendimiento y use la paginación por conjunto de claves para un desplazamiento estable. Practicas SQL Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar SQL Academy?

No se requiere experiencia previa. SQL Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Fundamentos de LIMIT, OFFSET y paginación»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de SQL Academy?

Sí. Cada lección de SQL Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Selección de columnas y expresiones
  2. Filtros WHERE: operadores de comparación y lógica
  3. ORDER BY con una o varias columnas
  4. Fundamentos de LIMIT, OFFSET y paginación
← Volver a SQL Academy