PostgreSQL LIMIT
A cláusula `LIMIT` no PostgreSQL é utilizada para restringir o número de linhas retornadas por uma consulta. É particularmente útil para paginação de resultados ou recuperação de um subconjunto de dados.
Uso
A cláusula `LIMIT` é aplicada para controlar o número máximo de linhas retornadas por uma consulta SQL. Normalmente, é usado em conjunto com `ORDER BY` para recuperar as N primeiras linhas de um conjunto de resultados.
SELECT column1, column2, ...
FROM table_name
[ORDER BY column_name]
LIMIT number_of_rows;
Nessa sintaxe, `LIMIT number_of_rows` especifica o número máximo de linhas a serem retornadas.
Exemplos
1. Limite básico
SELECT *
FROM products
LIMIT 5;
Neste exemplo, você recupera as primeiras 5 linhas da tabela `products`.
2. Limite com ordem
SELECT name, price
FROM products
ORDER BY price DESC
LIMIT 3;
Essa consulta retorna os três principais produtos mais caros, ordenando os resultados em ordem decrescente de preço.
3. Limite com deslocamento
SELECT order_id, customer_name
FROM orders
ORDER BY order_date
LIMIT 10 OFFSET 10;
Essa consulta busca 10 linhas a partir da 11ª linha, útil para paginação quando combinada com `ORDER BY`.
Dicas e práticas recomendadas
- Use com ORDER BY. Sempre combine `LIMIT` com `ORDER BY` para garantir resultados consistentes, especialmente quando a tabela não tiver chave primária ou identificador exclusivo.
- Considere a paginação. Use `LIMIT` em conjunto com `OFFSET` para recuperação de dados paginados. Esteja ciente de que o uso de offsets grandes pode afetar o desempenho, pois o PostgreSQL precisa varrer as linhas para alcançar o offset especificado.
- Otimize o desempenho. Esteja atento às implicações de desempenho ao usar `LIMIT` em grandes conjuntos de dados; considere o uso de índices. Para offsets grandes, explore técnicas de otimização de consultas.
- Combine com restrições. Use `LIMIT` com `WHERE` para refinar ainda mais o conjunto de dados antes de limitar o resultado.
- Explorar alternativas. Considere o uso da cláusula `FETCH FIRST` como uma alternativa a `LIMIT`, especialmente se você estiver mais familiarizado com os padrões SQL.
- Entenda os casos extremos. Ao definir `LIMIT` como zero, você retornará um conjunto de resultados vazio. O uso de um número negativo para `LIMIT` não é válido e resultará em um erro.