Recentemente eu descobri que o MySQL tem um offset
recurso. Eu tenho tentado encontrar documentação sobre os resultados do deslocamento, ou a diferença entre o deslocamento e a variante limite, mas não consigo encontrar o que estou procurando.
Digamos que tenho 10.000 linhas em uma tabela e quero 25 resultados, a partir da linha 1.000. Tanto quanto cheguei até aqui, eu poderia fazer as duas coisas para obter o mesmo resultado:
SELECT id,name,description FROM tablename LIMIT 1000,25
SELECT id,name,description FROM tablename LIMIT 25 OFFSET 1000
O que eu gostaria de saber é a diferença entre os dois.
- Isso realmente faz o mesmo ou meu entendimento está errado?
- É um mais lento / mais rápido em tabelas maiores
- O resultado do deslocamento muda quando o faço
WHERE column=1
(digamos, a coluna tem> 100 valores diferentes) - O resultado da compensação muda quando eu faço
ORDER BY column ASC
(desde que tenha valores aleatórios)
Se essa é uma pergunta "estúpida" e alguém conhece alguma documentação que ilumine o assunto, adicione-a nas respostas.
Tenho a sensação de que o deslocamento ignora as primeiras X linhas encontradas no banco de dados, desconsiderando a classificação e o local.