Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jaki najlepszy klucz wybrać dla tej tabeli ?
gothye
post
Post #1





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

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


Witam

mam tabele w mysql :

[SQL] pobierz, plaintext
  1. (int)user , (int)friend 
[SQL] pobierz, plaintext

i jeśli mam założony klucz :

[SQL] pobierz, plaintext
  1. UNIQUE KEY `user` (`user`,`friend`) 
[SQL] pobierz, plaintext

i wyszukuję z tabeli rekordy w warunku WHERE user=

wyszukiwanie trwa szybko ,lecz jeśli wyszukuję za pomocą WHERE friend= już nie jest tak różowo ,jak dobrac klucze aby przyspieszyć wyszukiwanie  za pomocą drugiego sposobu ?

Ten post edytował gothye 16.01.2010, 22:30:05
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Mchl
post
Post #2





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

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


Masz w manualu cały rozdział na ten temat.

http://dev.mysql.com/doc/refman/5.1/en/mysql-indexes.html

Podstawowa zasada: Zakładasz klucze na kolumny wg których szukasz. Klucze na kilku kolumnach działają 'od lewej'. Czyli twój klucz user zadziała w zapytaniu
WHERE user = ?, WHERE user = ? AND friend = ?, ale WHERE friend = ? i WHERE friend =? AND user = ? nie zadziała. Dla drugiego przypadku potrzebujesz klucza, który zaczyna się od kolumny 'friend'.

Ten post edytował Mchl 27.01.2010, 18:57:09
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: 12.10.2025 - 22:41