Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL] LIMIT
Forum PHP.pl > Forum > Przedszkole
Skie
Witam,
ostatnio zastanawiałem się nad komendą LIMIT w MySQL. Jestem ciekaw czy jeśli mamy zapytanie, które z góry wiemy, że wykona się tylko raz, np.: (wartość pola nie powtórzy się w innym rekordzie)

Kod
SELECT * FROM tabela WHERE pole=cos;


Lub:

Kod
UPDATE tabela SET pole2=cos2 WHERE pole=cos;


Lub:

Kod
DELETE FROM tabela WHERE pole=cos;


To czy opłaca się dodawać do tego "LIMIT 1" ?
NP:

Kod
SELECT * FROM tabela WHERE pole=cos LIMIT 1;


Lub:

Kod
UPDATE tabela SET pole2=cos2 WHERE pole=cos LIMIT 1;


Lub:

Kod
DELETE FROM tabela WHERE pole=cos LIMIT 1;


Teoretycznie wydaje mi się, że bez LIMIT 1 MySQL po napotkaniu pierwszego pasującego rekordu wykona na nim operacje, a następnie zacznie przeszukiwać resztę czy istnieje jeszcze jakiś rekord spełniający warunek WHERE.
Natomiast z LIMIT 1 po napotkaniu owego rekordu powinien przestać szukać, przez co zapytanie powinno szybciej działać i zżerać mniej zasobów.

Czy moje rozumowanie jest słuszne, czy się mylę?

Z góry dziękuję za odp.
melkorm
Cytat
As soon as MySQL has sent the required number of rows to the client, it aborts the query unless you are using SQL_CALC_FOUND_ROWS.


@ Manual.

Czyli przerywa, czyli się opłaca.
Crozin
Jeżeli masz pewność, że wartość dla danej kolumny będzie unikalna i na jej podstawie konstruujesz WHERE warto zastanowić się na indeksem UNIQUE - który również przerwie dalsze przeszukiwanie tabeli.

Oczywiście w przypadku liczby innej niż jeden: LIMIT
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.