
Trabalhar com paginação no PostgreSQL é bastante simples e é um recurso que colabora muito com a otimização de consultas que podem retornar muitos registros. Basicamente são usadas as palavras-chave LIMIT e OFFSET.
A palavra-chave LIMIT, como o próprio nome diz, serve para limitar o número de registros retornados em uma consulta. Se o resultado de uma consulta possui 100 registros, mas você quer que retorne apenas 10, basta fazer assim:
SELECT * FROM tabela LIMIT 10
Já a palavra-chave OFFSET serve para que sejam retornados os registros de uma consulta a partir um certo número, ignorando os anteriores. Por exemplo, se o resultado de uma consulta possui 50 registros e você especificou OFFSET 10, os 10 primeiros serão ignorados, retornando apenas os próximos.
SELECT * FROM tabela OFFSET 10
Como fazer paginação de resultados em PostgreSQL?
Em aplicações diversas, é muito comum usarmos a paginação de resultados, onde uma lista de dados é apresentada, e logo abaixo dela existem alguns links, como próximo, primeiro, último, ou também links com os números das páginas, como no exemplo abaixo:

Ao clicar em um desses links, são exibidos apenas os registros daquela página, garantindo performance ao apresentar os resultados.
Para realizar a paginação, nós usamos as palavras-chave LIMIT e OFFSET juntas:
SELECT * FROM tabela
LIMIT número_de_itens_por_página
OFFSET(página - 1) * número_de_itens_por_página
Para exibir os registros da página 3, com 10 registros por página:
SELECT * FROM tabela
LIMIT 10
OFFSET(3 - 1) * 10
Simples e rápido 🙂