![]() |
![]() |
![]()
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
i jeśli mam założony klucz : [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 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 12.11.2006 Skąd: Łodź Ostrzeżenie: (0%) ![]() ![]() |
Napisz ile rekordów ma tabela oraz ile jest unikalnych wpisów kolumnie pierwszej i drugiej. Ja po pierwsze spróbowałbym
utworzyć indeks na drugiej kolumnie. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 702 Pomógł: 65 Dołączył: 16.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
forum docelowo moze zawierac 100 000 userów co daje w przybliżeniu ok 4.000.000 rekordów ,
wpisy w user, friend są nie powtarzające się ,na testowej bazie z taką ilością rekordów i kluczem primary key (`user`,`friend`) wyszukiwanie po kolumnie user trwa 10ms a po kolumnie friend 4s (IMG:style_emoticons/default/sad.gif) Niemyślałem że klucze w sql sprawią taką trudność ,naprawdę nikt nie wie jak można rozwiązać ten problem ? |
|
|
![]()
Post
#4
|
|
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 11:01 |