![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 555 Pomógł: 84 Dołączył: 20.02.2008 Skąd: Małopolska Ostrzeżenie: (0%) ![]() ![]() |
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. -------------------- Wieloprocesowość i wielowątkowość w PHP, poznaj Kraken PHP!
Serwer HTTP i WebSocket w PHP | Promise/A+ Strona Domowa | Elradia MMORPG FireFox: make the web better. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
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. -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
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 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.06.2025 - 04:00 |