2011-10-17 7 views
5

Il numero LIMIT 1 è stato aggiunto dopo l'aumento di prestazioni della query?Il LIMIT 1 ha un incremento delle prestazioni?

... se potrebbe essere presente una sola voce corrispondente (clausola WHERE per chiave primaria)?

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

... lo stesso, ma ora è DELETE:

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

... e UPDATE:

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

P.S. La colonna id è la chiave primaria, quindi è unica.

Grazie in un consiglio!

+1

, in questo caso, non dovrebbe avere alcun effetto. Inoltre, non dovresti aver bisogno di virgolette attorno ai nomi delle tue colonne. – DwB

+4

Personalmente ritengo che sia ancora buono per la chiarezza e l'habbit – Will03uk

risposta

4

dipende avete indice sulla colonna o non

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

è inutile se id è chiave primaria, ma

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

darà u Perfomance aumentare

0

Sarà Spinta prestazioni in quanto il DB avvierà solo un recupero delle righe che soddisfano le condizioni della query. Ma sugli aggiornamenti, qual è il punto? Soprattutto se stai facendo una corrispondenza esatta con una chiave primaria - all'inizio dovresti sempre abbinare una riga, quindi non c'è motivo di dire cosa significa "aggiorna questa riga nella tabella, ma aggiorna solo una riga a maggior parte". Il limite