Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> LIMIT - optymalizacja zapytań po indeksie
armon
post
Post #1





Grupa: Zarejestrowani
Postów: 66
Pomógł: 1
Dołączył: 24.09.2009

Ostrzeżenie: (0%)
-----


Witam,

Czy
  1. SELECT pole FROM tabela WHERE id = 1 LIMIT 1

jest szybsze od
  1. SELECT pole FROM tabela WHERE id = 1


gdy id jest primary key lub też unique?

Wiem, że bez indeksu na pewno jest szybsze, ponieważ po znalezieniu jednego rekordu nie trzeba przeszukiwać następnych.

Lecz z indeksem unikalnym samo z siebie wynika, że to się już nie powtórzy? więc chyba nic nie przyspieszy?

Rozumiem, że z normalnym INDEX (bez unique), LIMIT 1 przyspiesza zapytanie?

Myślę nad ustawieniem w bazie danych login na klucz unique, oraz login i hasło na klucz złożony INDEX. Na samo hasło nie będę nakładał indeksu bo po co w końcu jakieś tam szansę powtórzenia ma.

Tak więc wybierają później
  1. SELECT id FROM tabela WHERE login = 'loginek' AND haslo = 'cryptedwhirlpoolthing' LIMIT 1


Najlepiej dodać do końca LIMIT 1 tak?

Ten post edytował armon 20.09.2011, 08:51:42
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




limit na pewno nie zaszkodzi ani nie spowolni więc poprostu dodaj jeśli wiesz, ze chcesz pobrać max 1 rekord.
Go to the top of the page
+Quote Post
armon
post
Post #3





Grupa: Zarejestrowani
Postów: 66
Pomógł: 1
Dołączył: 24.09.2009

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 20.09.2011, 10:05:10 ) *
limit na pewno nie zaszkodzi ani nie spowolni więc poprostu dodaj jeśli wiesz, ze chcesz pobrać max 1 rekord.


Mój plik będzie zajmował o 7 znaków w bajtach więcej z każdym takim zapytaniem ;P plik .php będzie musiał być dłużej czytany ;P

A tak na poważnie uruchomienie czegoś co jest niepotrzebne, nie zmienia faktu, że zostało to jednak uruchomione, czyli trzeba było wywołać kod jakiejś funkcji, nawet jeśli był tam warunek sprawdzający czy klucze nie są już unique etc., to trzeba było to sprawdzić i wywołać funkcję. Oczywiście to jest prawie nic, no ale przy milionach zapytań to jest coś (IMG:style_emoticons/default/wink.gif)

Czyli nikt nie wie?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 22:53