Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 25.02.2004 Skąd: Brusy Ostrzeżenie: (0%)
|
Jak w temacie.
Mam problem z zapytaniem do bazy w mysql. Trwa ono nieskończenie długo (lub ~ 154sekundy).
Są takie 4 tabele. Napisałem wyszukiwarkę, która pięknie działała na małej ilości użytkowników. Przy ponad 1700 - zaczyna się problem - zapytanie trwa zbyt długo, baardzo obciąża serwer. Wygląda ono następująco: (przykładowo)
Problemem są ogromne tabele - londoner_users_spheres - ma ponad 68.600 rekordów oraz londoner_users_types - ponad 7000. Może macie jakieś pomysły? :-( |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław |
Ok. No to bawimy się dalej.
Teraz struktura bazy. Na wszystkie kolumny, będące kluczami zewnętrznymi zakładamy indexy. (klucze zewnętrzne, to np. londoner_users_spheres.user_id ) Zasade tą stosujemy na WSZYSTKICH połączeniach pomiędzy tabelami. Edited: Mały test, już z danymi Bez żadnych indexów: 0.4449 sekundy Z wszystkimi indexami: 0.0122 sekundy Teraz DISTINCT zamiast GROUP: 0.0112 sekundy (o dziwo niewiele to dało. hmm ) |
|
|
|
sheldon "skomplikowane" zapytanie 25.12.2005, 17:33:51
kicaj Czy przy tej wyszukiwarce potrzebne jest az tyle t... 25.12.2005, 19:28:49
sheldon Jak proponowałbyś to zrobić? 25.12.2005, 20:44:38
DeyV napisz, do czego służy ta baza, oraz jakie dane ch... 25.12.2005, 20:55:22
sheldon Baza ta służy do pobrania listy tłumaczy spełniają... 25.12.2005, 21:01:25
DeyV Zacznijmy od optymalizacji zapytania.
W zapytaniu... 25.12.2005, 21:21:59
sheldon [SQL] pobierz, plaintext CREATE TABLE `londoner_pr... 25.12.2005, 21:30:50
sheldon http://www.oc-forum.org/baza.zip - tutaj są wszelk... 25.12.2005, 21:43:23
DeyV I dlatego wole Postgresa... On by nie pozwolił na ... 25.12.2005, 22:22:20
sheldon Ja jeszcze raz bardzo dziękuję za pomoc, a przy ok... 25.12.2005, 22:38:01 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 20:32 |