![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 212 Pomógł: 0 Dołączył: 18.12.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
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 ? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Zmniejszy, bo po znalezieniu jednego rekordu spełniającego warunek nie będą przeszukiwane pozostałe.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 212 Pomógł: 0 Dołączył: 18.12.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
dzięki.. właśnie o takie potwierdzenie mi chodziło (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
Jak na login dasz INDEX UNIKALNY to będzie szybciej i nie będzie trzeba dawać LIMIT
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.09.2025 - 22:10 |