Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Indeksy w MySQL
Forum PHP.pl > Forum > Bazy danych > MySQL
Fred1485
Kod:

  1.  
  2. CREATE TABLE tabela (
  3.  
  4. client_id int,
  5. order_id int,
  6.  
  7. PRIMARY KEY (client_id, order_id),
  8. INDEX (order_id),
  9.  
  10. FOREIGN KEY (client_id) REFERENCES tabela2(id),
  11. FOREIGN KEY (order_id) REFERENCES tabela3(id)
  12.  
  13. );
  14.  


Wiem, że kolumna z kluczem podstawowym automatycznie dodaje index. W takim przypadku po co dawać index na kolumnę order_id? To jest tak, że doda tylko do pierwszej kolumny, jeśli klucz jest złożony np z dwóch kolumn?
Pyton_000
Dlatego że jeśli będziesz szuać po samym order_id to nie użyje indeksu.
Fred1485
Tak tak ja to rozumiem ale chodzi mi bardziej o to że kolumna z primary key dostanie index automatycznie natomiast jeśli klucz główny składa się z dwóch kolumn to dlaczego muszę ręcznie dodać do tej drugiej kolumny index (na drugiej kolumnie indexu automatycznie już nie będzie).
Pyton_000
No przecież Ci napisałem... Będziesz miał finalnie 2 indeksy: (client_id, order_id) i (order_id).
Fred1485
Nie zajarzyło w głowie tongue.gif Już wiem.
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.