![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 0 Dołączył: 19.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam problem z dość sporym serwisem, który generuje koszmarne obciążenie na sererze (poprzez mrocesy mysqla). Juz podaję więcej szczegółów ktore udalo mi sie włowić. Na serwis wchodzi ok 5-6tys unikalnych gosci na dobę. Juz po chwili od udostepnienia serwisu load serwera niesamowicie rosnie a mysql polyka pamiec starsznie szybko. Strukttura bazy z ktorej korzysta serwis jest bardzo toporna.. Głowna tabela zawiara ponad 30tys rekordow i wazy ponad 2mb. Po wykonaniu 'show proccesslist' w 90% przypadkow widac 2 lub 3 zapytania z duza iloscia OR wnajdujacch sie w sekcji WHERE.. czy to moze byc przyczyna tak starsznego spowalniania.. ? Czy zrzerobienie bazy w celu wyeliminowanie 'OR'ow mogloby rozwiazac problem? Ewentualnie jakie sąmetody żeby dokladnie zdiagnozować co powoduje ten problem. Pozdrawiam i bardzo proszę o odpowiedz. yacoos |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 1 Dołączył: 8.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Co to sa za pola po kotrych dokonujesz porownan ?
Powinny byc, po ta sa indexy zeby przyspieszyc wyszukiwanie, bez indexow baza nie wie gdzie ( w ktorym rekordzie) sa poszukiwane wartosci i wtedy leci od poczatku do konca po calej tablicy i robi porownania Kiedy masz index zalozony to szybko potrafi sobie zlokalizowac dany rekord bez koniecznosci przeszukiwania calej tabeli. Pozakladaj indexy i zobacz jak sie zmieni sytuacja. Zobacz ile dla kazdej strony jest wykonywanych zapytan do bazy, byc moze uda sie zredukowac ich ilosc (polaczyc kilka zapytan w jedno ? itp ...) ? kazde dodatkowe zapytanie to nowe obciazenie dla bazy Jesli dane w bazie nie sa czesto aktualizowane to moze pomysl o cache'owaniu wygenerowanej strony i/lub o cache'owaniu wynikow z bazy |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 09:10 |