Récemment, j'ai découvert que MySQL a une offset
fonctionnalité. J'ai essayé de trouver de la documentation sur les résultats de l'offset, ou la différence entre l'offset et la variante de limite, mais je n'arrive pas à trouver ce que je cherche.
Disons que j'ai 10 000 lignes dans une table et que je veux 25 résultats, à partir de la ligne 1 000. Pour autant que je suis arrivé jusqu'ici, je pouvais faire les deux pour obtenir le même résultat:
SELECT id,name,description FROM tablename LIMIT 1000,25
SELECT id,name,description FROM tablename LIMIT 25 OFFSET 1000
Ce que j'aimerais savoir, c'est la différence entre les deux.
- Est-ce que cela fait la même chose ou est-ce que ma compréhension est fausse?
- Est un plus lent / plus rapide dans les grandes tables
- Le résultat du décalage change-t-il quand je le fais
WHERE column=1
(disons que la colonne a> 100 valeurs différentes) - Le résultat du décalage change-t-il quand je le fais
ORDER BY column ASC
(en supposant qu'il a des valeurs aléatoires)
S'il s'agit d'une question «stupide» et que quelqu'un connaît des documents éclairant le sujet, veuillez les ajouter dans les réponses.
J'ai l'impression que l'offset saute les premières lignes X trouvées dans la base de données, sans tenir compte du tri et de l'endroit.