Definição
Offset é a quantidade de itens pulados antes de retornar uma parte do resultado. Combinado a um limite, ele define qual trecho da lista ordenada será entregue em cada chamada.
Deslocamento e tamanho da página
Uma consulta com limite dez e offset zero retorna os dez primeiros registros. Com offset dez, a mesma consulta pula os dez primeiros e retorna do décimo primeiro ao vigésimo. A ordenação precisa estar definida para que o deslocamento tenha significado estável.
SELECT * FROM clientes
ORDER BY id
LIMIT 10 OFFSET 10;O banco precisa varrer o trecho pulado para chegar ao deslocamento pedido. Com poucos registros o custo é pequeno, mas o trabalho de leitura cresce conforme o offset aumenta, porque cada página anterior é percorrida de novo.
Deslocamentos e listas em movimento
Inserções e remoções durante a navegação deslocam a lista. Um registro novo no início empurra os demais, e a página seguinte pode repetir ou omitir itens. Para listas longas e em mudança, abordagens baseadas em cursor tendem a ser mais estáveis.
Falha comum e como verificar
A falha mais comum é paginar sem ordenação definida. Quando a ordem varia entre as chamadas, o mesmo offset devolve registros diferentes, e a lista repete ou omite itens. A segunda falha frequente é o deslocamento sobre uma lista em movimento, pois uma inserção no início empurra os registros e a página seguinte pula ou repete conteúdo. Para verificar, execute a mesma consulta duas vezes seguidas e compare os retornos, e depois insira um registro novo no início da lista e avance uma página para conferir se nada se repete. Quando o resultado muda sem explicação, a consulta precisa fixar a ordenação ou trocar o offset por cursor.
Veja a paginação como um todoDúvidas frequentes
Perguntas frequentes sobre Offset
- Offset e limite funcionam juntos?
- Sim. O offset indica quantos itens pular e o limite indica quantos retornar.
- Offset é estável durante a navegação?
- Não. Inserções e remoções no meio da lista podem deslocar resultados e gerar repetições ou omissões.
- Quando o offset é útil?
- Para listas ordenadas e volumes pequenos. Conjuntos muito grandes costumam preferir outras formas de paginação.
Para continuar
Recursos relacionados
Documentação
PostgreSQL: LIMIT and OFFSET
Documenta o uso de deslocamento junto do limite na consulta.
Abrir recursoDocumentação
SQLite: SELECT
Mostra como declarar LIMIT e OFFSET em uma consulta SQLite.
Abrir recursoAplicação na formação
Developer Workspace
Na Formação Developer Workspace, o offset compõe consultas paginadas nas listagens de registros que a interface precisa percorrer.
Conhecer a formaçãoFontes consultadas
Referências deste verbete
Este verbete ajudou você?
Obrigado pela resposta. Ela fica salva apenas neste navegador.