Krzysztof
Białkowski
What colour do you
want that database
:>
Temat: [Mysql] Tabele wymagajace deframentacji
Witam,Otóż mam taki dziwny przypadek;]
Mamy sobie działający serwer, wszystko ładnie pięknie i nagle boom.
Wchodze w mysql processliste a tam 150 watków, kazde wykonuje się ~10s , load 15 - jest wesoło.
Zauwazylem ze jedno zapytanie jest powielone wiele razy i ono zabija serwer.
Szybki check table po tabelach składowych (glownie InnoDB) wsyzstko OK.
Zacząłem rozbijać zapytanie na składowe i wyszło mi, ze zamula przy którymś złączeniu.
Takze optimize na tej tabeli przy zlączeniu i wszystko wraca do normy, kwerenda znow wykonuje się w 0,1s .
Pytanie moje brzmi czy da się przewidzieć taką sytuacje ? Jak mówiłem check na tabeli zwrócił OK, dopiero jej defragemtnacja pomogła.
Jakub Purtal profesjonalny opis
Temat: [Mysql] Tabele wymagajace deframentacji
Może zapytanie wpada po pewnym czasie do cache, a piki pojawiają się wtedy gdy jakiś parametr się zmieni, np. data w zapytaniu. Wkleisz zapytanie?
Krzysztof
Białkowski
What colour do you
want that database
:>
Temat: [Mysql] Tabele wymagajace deframentacji
Jakub Purtal:
Może zapytanie wpada po pewnym czasie do cache, a piki pojawiają się wtedy gdy jakiś parametr się zmieni, np. data w zapytaniu. Wkleisz zapytanie?
Zapytanie jest wlasnie b.proste:
select a.imie,a.nazwisko,t1.nazwa,t2.nazwa from
abonenci a
left join tabela1 t1 on (t1.id=a.id)
left join tabela2 t2 on (t1.id=t2.id)
left join tabela3 t3 on (t3.id=t2.id)
left join tabela4 t4 on (t4.id=t3.id)
where a.id_abonent=123456
Normalnie trwa ~0.1s , jednak w momencie gdy wyłozyla sie tabela3 wzorsło do to jakis 20s.
Z uwagi, ze aplikacja wykonuje to zapytanie co ok 10s ( z roznym id_abonent), baza sie przyblokowała.
