Advertisement

Stwórz profil

Musisz wpisać swoje imię
Musisz wpisać swoje nazwisko
Musisz wpisać poprawny e-mail
Musisz wpisać hasło (min. 8 znaków)
Musisz zaakceptować regulamin

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.
7.02.2012, 14:17

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?
7.02.2012, 14:40

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.
8.02.2012, 10:08



Wyślij zaproszenie do