![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 252 Pomógł: 2 Dołączył: 4.12.2004 Skąd: Skierniewice Ostrzeżenie: (10%) ![]() ![]() |
Witam!
Mam problem z zapytaniem, otóż póki było mało rekordów wszystko było ok, obecnie w jednym miejscu muszę pobrać dane z 5 innych tabel i przy 234 rekordach trwa to strasznie długo, na serwerze lokalnym: Wersja serwera MySQL: 4.0.15, Wersja php: 4.3.3, trwa to około 15-20 sekund do momentu wyświetlenia się danych w przeglądarce. W jaki sposób można zoptymalizować to zapytanie, 2 - 3 sekundy to byłoby do zaakceptowania, ale nie 15! Struktura bazy:
Zapytanie:
$co, $sort odpowiadają polu po którym sortuje i sposobie sortowania (asc, desc), przekazwyane GET A dane wyświetlam w następujący sposób:
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Jesteś pewien, że to wina zapytania? Zmierz ile trwa wykonanie zapytanie a ile prezentacja wyników.
Nie jestem na 100% pewien, ale gdybyś przerobił tak zapytanie aby zamiast "where tab1.cos=tab2.cos" było LEFT JOIN. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 252 Pomógł: 2 Dołączył: 4.12.2004 Skąd: Skierniewice Ostrzeżenie: (10%) ![]() ![]() |
jak się okazało TomASS miałeś rację - to nie była wina zapytania (wykonuje się w 0,1728s). Problemem było zupełnie co innego. Skrypt z założenia miał być obsługiwany tylko pod IE 6.0. Aby nieco go pokolorować skorzystałem z behaviora csshover i podswietlałem sobie wyświetlane wiersze. Bahavior dołączałem normalnie:
Kod body { background-color: #FFFFCC; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 24px; color: #336699; behavior:url("csshover.htc"); } I właśnie ten behavior tak spowalniał wyświetlanie końcowej tabelki. W momencie renderowania proc obciążony był na 100%. Wyciąłem go ze styli i jak ręką odjął, razem z wyświetleniem tabeli, niecała sekunda. Ten post edytował artur81 12.05.2006, 07:06:16 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Ale swoją drogą, że behawior tak spowolaniał - dziwne.
Może spróbuj tak jak tutaj jest napisane. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 252 Pomógł: 2 Dołączył: 4.12.2004 Skąd: Skierniewice Ostrzeżenie: (10%) ![]() ![]() |
dalej jest tak samo, po prostu nie działa dobrze z tym behaviorem.
|
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
No to skoro juz uzgodniliście, ze to nie wina zapytania, to przenoszę (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) A teraz se dyskutujcie o tym behaviorze czy jak to tam sie zwie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#7
|
|
Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Zapytanie nadal wykonuje sie długo.. pododawaj indeksy na wszystkie pola używane do łączenia tabel (klucze obce) to zobaczysz ile powinno się ono wykonywać naprawdę.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 13:30 |