7.6. LIMIT y OFFSET

LIMIT y OFFSET permiten recuperar sólo una parte de las filas que se generan por el resto de la consulta:

Si un límite de recuento es dado, no más que el número de filas que se devuelven (pero posiblemente menos, si la consulta se rinde menos filas). Limitar todo es lo mismo que omitir la cláusula límite.

OFFSET dice que se omitan muchas filas antes de comenzar a devolver filas. OFFSET 0 es lo mismo que omitir la cláusula OFFSET., Si aparecen tanto OFFSET como LIMIT, las filas OFFSET se omiten antes de comenzar a contar las filas LIMIT que se devuelven.

cuando se usa LIMIT, es importante usar una cláusula ORDER BY que constriñe las filas de resultados en un orden único. De lo contrario, obtendrá un subconjunto impredecible de las filas de la consulta. Usted puede estar pidiendo la décima a la vigésima filas, pero de la décima a la vigésima en qué orden? El pedido es desconocido, a menos que haya especificado el pedido por.,

El optimizador de consultas tiene en cuenta el límite al generar un plan de consultas, por lo que es muy probable que obtenga diferentes planes (produciendo diferentes órdenes de fila) dependiendo de lo que dé para el límite y el desplazamiento. Por lo tanto, el uso de diferentes valores de límite/desplazamiento para seleccionar diferentes subconjuntos de un resultado de consulta dará resultados inconsistentes a menos que imponga un orden de resultados predecible con ORDER BY. Esto no es un error; es una consecuencia inherente del hecho de que SQL no promete entregar los resultados de una consulta en un orden particular a menos que se use ORDER BY para restringir el orden.,

las filas omitidas por una cláusula OFFSET todavía tienen que ser calculadas dentro del servidor; por lo tanto un OFFSET grande puede ser ineficiente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *