2011-10-17 29 views
5

Sorgun herhangi bir performans artışı olduğunda LIMIT 1 eklenir mi?LIMIT 1'de herhangi bir performans artışı var mı?

... Eşleşen tek bir girdi var ise (birincil anahtar için WHERE yan tümcesi)?

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

... Aynı, ama şimdi DELETE var:

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

... ve UPDATE:

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

dip not Sütun id birincil anahtardır, bu yüzden benzersizdir.

Bir teşekkür ederiz! Değişir

+1

. Ayrıca, sütun adlarınızın etrafında tırnaklara ihtiyacınız olmamalıdır. – DwB

+4

Ben kişisel olarak açıklık ve habbit için hala iyi hissediyorum – Will03uk

cevap

4

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

id Birincil Anahtar ise anlamsızdır Eğer sütun üzerinde dizin veya değil var, ama

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

u

0

O artırmak olacak artırmak performanslarının verecek Performans, DB'nin yalnızca sorgu koşullarını karşılayan satırların getirilmesini başlatacağıdır. Ancak güncellemelerdeki nokta nedir? Özellikle bir birincil anahtarda tam bir eşleşme yapıyorsanız - sadece bir satır ile başlayacaksınız, bu nedenle tablodaki bir satırı güncellemenin ne kadar önemli olduğunu belirtmek için bir nokta yoktur, ancak yalnızca bir satırı güncellemeniz yeterlidir. çoğu". Bu durumda, herhangi bir etkisi olmamalıdır.

İlgili konular