![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 79 Dołączył: 16.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Ogółem niby wiem co to są indeksy (klucze) ale gubię się, gdy chodzi o tworzenie indeksów dla wielu pól jednocześnie. Mam pierwszą tabelę, gdzie trzymam "użytkowników", jest tam id,user_name itd. Mam drugą tabelę, gdzie trzymam "wiadomości użytkowników", jest tam id, oraz: sender_id oraz recipient_id (które dotyczą id w pierwszej tabeli) itd... Czyli taki typowy przykład bardzo prostej relacji. Chodzi mi (na razie) o tę drugą tabelę. Chcę tam stworzyć indeksy (używając phpMyAdmin) i chciałbym indeksować: id, sender_id oraz recipient_id (chyba słusznie?). I teraz: czy mam stworzyć JEDEN indeks zawierający wszystkie te kolumny, czy stworzyć 3 indeksy dla każdej z nich? Czy jest jakaś różnica potem w szybkościach? p.s. Co to jest "MOC" w phpmyadmin przy indeksach? Google nie chce pomóc. p.s.2 w tej pierwszej tabeli (gdzie jest min. user_name:varchar [64]) warto indeksować ów "user_name"? A jeśli tak to w jednym indeksie z ID czy w dwóch indeksach? Update: w związku z brakiem odpowiedzi, potestowałem trochę, dodając różne indeksy dla różnych pól, no i ... zero różnicy, czas wykonania taki sam, może kilkanaście tysięcy rekordów to za mało by indeksowanie coś pomagało? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 79 Dołączył: 16.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Jeden potrojny klucz jest bez sensu, przyda ci sie TYLKO gdy bedziesz wyszukiwal: ...WHERE recipient_id = $id1 AND sender_id = $id2 AND id = $id3 - a tak zapewne nie bedziesz z tego korzystal Dzięki! Właśnie o to mi chodziło. Update: no to jak to w końcu jest ? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Jak na razie potworzyłem dużo indeksów, ale trochę pamięci zabierają (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) |
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
no to jak to w końcu jest ? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Jak na razie potworzyłem dużo indeksów, ale trochę pamięci zabierają (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) "Co za dużo to nie zdrowo" - trzymaj się tego hasła zakłądając indeksy. Przyspieszają one wyszukiwanie ale spowalniają operacje zmiany danych (insert, update, delete) gdyż prócz danych zaktualizowane muszą zostac indeksy. Co do sugerowanych indeksów trzymaj się tego, co napisał ~dr_bonzo: - user_name - indeks unikalny - recipient_id - indeks - sender_id - indeks |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 03:41 |