Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [sql] czy LIMIT tu coś zmieni ?
Forum PHP.pl > Forum > Bazy danych
M@X
Witam.
Pytanie może banalne.. ale jak tak się dłużej zastanawiam czy może jednak nie takie banalne.
Przykładowo mam tabele "user", która ma 50 000 wierszy.
W momencie gdy użytkownik się loguje to jest zapytanie
select * from user where login = jan_kowalski"";
Czyli loguje usera o loginie "jan_kowalski".

Wiadomo że w bazie jest tylko jeden taki wiersz o loginie "jan_kowalski" więc jak stworze zapytanie:
select * from user where login = jan_kowalski" LIMIT 1";
to ten LIMIT ograniczy obciążenie wyszukiwania z bazy do 1 pozycji ? czy to będzie dokładnie takie same obciążenie jak bez LIMITu ?

trueblue
Zmniejszy, bo po znalezieniu jednego rekordu spełniającego warunek nie będą przeszukiwane pozostałe.
Pyton_000
TL;DR
Jesli masz index to nie zobaczysz różnicy, jeśli nie masz to różnica będzie duża.


Z LIMIT teoretycznie będzie szybciej (jeśli masz klucz na login to będzie to mikro optymalizacja)

LIMIT w tym przykładzie zadziała tak że po znalezieniu pierwszego rekordu następuje przerwanie operacji i zwrócenie rekordu.
Jednak przy wyszukiwaniu pola z indeksem to i tak nie będzie miało większego znaczenia.
M@X
dzięki.. właśnie o takie potwierdzenie mi chodziło smile.gif
maly_swd
Jak na login dasz INDEX UNIKALNY to będzie szybciej i nie będzie trzeba dawać 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.