2011-10-17 16 views
5

Czy dołączone LIMIT 1 po zapytaniu mają jakieś zwiększenie wydajności?Czy LIMIT 1 ma jakieś zwiększenie wydajności?

... jeśli mógł istnieć tylko jeden możliwy wpis, który pasował (WHERE do klucza podstawowego)?

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

... to samo, ale teraz nadszedł DELETE:

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

... i UPDATE:

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

PS: Kolumna id to klucz podstawowy, więc jest unikalny.

Dzięki za radę!

+1

nie powinien w tym przypadku przynieść żadnego efektu. Ponadto nie powinieneś potrzebować cytatów wokół nazw kolumn. – DwB

+4

Osobiście uważam, że nadal jest dobre dla jasności i przyzwyczajenia – Will03uk

Odpowiedz

4

to zależy czy masz indeksu na kolumnie lub nie

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

jest bezcelowe, jeśli identyfikator jest klucz podstawowy, ale

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

da u, wynoszącym zwiększyć

0

To będzie zwiększyć wydajność polegająca na tym, że DB inicjuje tylko pobranie wierszy spełniających warunki zapytania. Ale o aktualizacjach, o co chodzi? Zwłaszcza jeśli robisz dokładnie dopasowanie na kluczu podstawowym - na początku dopasujesz tylko jeden wiersz, więc nie ma sensu mówić, co oznacza "zaktualizuj ten jeden wiersz w tabeli, ale zaktualizuj tylko jeden wiersz o większość". Limit

Powiązane problemy