2011-10-17 7 views
5

¿El anexo LIMIT 1 después de la consulta tiene algún aumento en el rendimiento?¿LIMIT 1 tiene algún aumento de rendimiento?

... si hubiera una sola entrada posible que coincida con (WHERE cláusula para la clave principal)?

SELECT `x` 
FROM `unicorns` 
WHERE `id` = 123 
LIMIT 1 

... el mismo, pero ahora es DELETE:

DELETE FROM `unicorns` 
WHERE `id` = 123 
LIMIT 1 

... y UPDATE:

UPDATE `unicorns` 
SET `rainbows` = `rainbows` + 1 
WHERE `id` = 123 
LIMIT 1 

P. S. La columna id es la clave principal, por lo que es única.

Gracias en un consejo!

+1

límite, en este caso, no debería tener ningún efecto. Además, no debería necesitar citas entre los nombres de sus columnas. – DwB

+4

Personalmente creo que todavía es bueno para la claridad y el habitar – Will03uk

Respuesta

4

depende tienes índice en la columna o no

DELETE FROM `unicorns` WHERE `id` = 123 LIMIT 1 

no tiene sentido si la identificación es la clave principal, pero

DELETE FROM `unicorns` WHERE `noindexoclumn` = 123 LIMIT 1 

da au Perfomance impulsar

0

Se va a aumentar el rendimiento en que la base de datos solo iniciará una búsqueda de las filas que satisfacen las condiciones de la consulta. Pero en las actualizaciones, ¿cuál es el punto? Especialmente si está haciendo una coincidencia exacta en una clave principal, para empezar, solo debería coincidir con una fila, así que no tiene sentido decir lo que equivale a "actualizar esta fila en la tabla, pero solo actualice una fila en más".

Cuestiones relacionadas