Está explicado em algum lugar na documentação que, se eu fizer isso:
SELECT *
FROM (
SELECT *
FROM foo
ORDER BY bar ASC
LIMIT 1000
)
LIMIT 10
OFFSET 10
então a ordenação da consulta interna continuará na consulta externa?
Ou preciso repetir a consulta interna ORDER BY
na consulta externa? Isso está assumindo que não temos nenhuma junção.
Você não pode depender de nenhum pedido, a menos que tenha
ORDER BY
na consulta externa. A ordenação dependerá do plano de execução escolhido.No caso da consulta atual, não consigo pensar em um plano de execução razoável que não preserve a ordenação, mas quem sabe o que o futuro trará para o otimizador de consultas?
Eu escreveria um segundo
ORDER BY
. Classificar 1.000 linhas é barato, e você pode ter certeza disso.