![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 224 Pomógł: 40 Dołączył: 6.07.2004 Skąd: Wuppertal Ostrzeżenie: (0%) ![]() ![]() |
Witam,
W portalu który aktualnie przygotowuje występuje co następuje: 4 tabele: offers (około 90tys rekordów aktualnie), strukruta ponizej w duzym uproszczeniu: id make_id model_id user_id users (tu jest narazie tylko jeden rekord - tym bardziej sie martwie) id logi offersactive(enum 1/0) makes id name models id name
explainik: Kod id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE u ref PRIMARY,offersactive offersactive 4 const 1 Using where; Using temporary; Using filesort 1 SIMPLE l ref user_id user_id 4 usr_wantacar_1.u.id 41953 Using where 1 SIMPLE m eq_ref PRIMARY PRIMARY 4 usr_wantacar_1.l.make_id 1 1 SIMPLE models eq_ref PRIMARY PRIMARY 4 usr_wantacar_1.l.model_id 1 1 SIMPLE d eq_ref PRIMARY PRIMARY 4 usr_wantacar_1.l.derivative_id 1 klucze pozakładane, przy zawężeniu przynajmniej do jakiejś marki, wszystko dziala cacy (zapytanie ponizej 0.3 sekundy). Niestety gdy chce wybrać 30 rekordów ze wszystkich - a nie moge wyeliminować ze uzytkownicy nie beda przeszukiwać po wszystkich ofertach - potrzebuje wlasnie pobrac takie 90k rekordów i przesortować po np. nazwie marki (która jest joinowana). Maszyna na której bedzie to stało to 64bitowy Opteron 148, 3 giga ramu, i dysk w raidzie. my.cnf nie przedstawiam nawet, bo namieszałem w nim (probowalem z rozmiarem bufora sortowania) i nic dobrego z tego nie wynikło (czas zapytania z 7 sekund spadł do 5,5). Na które dyrektywy zwrócić uwagę przy konfiguracji mysqla? Ew jak przyoptymalizować to zapytanie? (ja nie widze juz mozliwosci) dodam jeszcze wersje mysqla Kod MySQL 4.1.11-Debian_4sarge7-log uruchomiony na localhost, użytkownik...
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 05:51 |