Cuando agrego LIMIT 1 a una consulta MySQL, ¿detiene la búsqueda después de encontrar 1 resultado (lo que la hace más rápida) o aún obtiene todos los resultados y se trunca al final?
Cuando agrego LIMIT 1 a una consulta MySQL, ¿detiene la búsqueda después de encontrar 1 resultado (lo que la hace más rápida) o aún obtiene todos los resultados y se trunca al final?
Respuestas:
Dependiendo de la consulta, agregar una cláusula de límite puede tener un efecto enorme en el rendimiento. Si desea solo una fila (o sabe con certeza que solo una fila puede satisfacer la consulta) y no está seguro de cómo la ejecutará el optimizador interno (por ejemplo, la cláusula WHERE no golpea un índice, etc.), entonces definitivamente debería agregar una cláusula LIMIT.
En cuanto a las consultas optimizadas (usando índices en tablas pequeñas), probablemente no importará mucho en el rendimiento, pero de nuevo, si solo está interesado en una fila, agregue una cláusula LIMIT independientemente.
El límite puede afectar el rendimiento de la consulta (consulte los comentarios y el enlace a continuación) y también reduce el conjunto de resultados que genera MySQL. Para una consulta en la que espera un único resultado, hay beneficios.
Además, limitar el conjunto de resultados puede, de hecho, acelerar el tiempo total de consulta, ya que la transferencia de conjuntos de resultados grandes utiliza memoria y puede crear tablas temporales en el disco. Menciono esto porque vi recientemente una aplicación que no usaba limit kill a un servidor debido a enormes conjuntos de resultados y con el límite establecido, la utilización de recursos se redujo enormemente.
Consulte esta página para obtener más detalles: Documentación de MySQL: Optimización LIMIT
Si solo se obtiene 1 resultado, entonces no, LIMIT no lo hará más rápido. Si hay muchos resultados, y solo necesita el primer resultado, y no hay declaraciones GROUP u ORDER by, LIMIT lo hará más rápido.
La respuesta, en definitiva, es sí. Si limita su resultado a 1, incluso si está "esperando" un resultado, la consulta será más rápida porque su base de datos no revisará todos sus registros. Simplemente se detendrá una vez que encuentre un registro que coincida con su consulta.
UNIQUE
(oPRIMARY KEY
) restricción (o índice) en la columna del filtro. stackoverflow.com/questions/8467092/…