Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: MySQL zawiesza się - jak zdiagnozować co powoduje problem?
Forum PHP.pl > Forum > Bazy danych > MySQL
damian.1923
Witam,

na serwerze lokalnym (Linux Mint Debian Edition, MySQL 5.5, PHP 5.5) mamy uruchamianych wiele zadań cyklicznych tzw. cron-ów odpalających php-cli, do tego działa kilkadziesiąt przeróżnych pojedynczych skryptów i interfejsów w ramach intranetu,

coś regularnie powoduje zawieszenia bazy MySQL,
serwer nie odpowiada aż do momentu ręcznego restartu,
często wtedy pochłania 100% CPU, ale nie zawsze

jak najepiej zdiangozować co powoduje zawieszkę?

(jest kilka baz, kilkaset tabel, wyłącznie MyISAM, zapytania są bardzo złożone)

pozdrawiam,
Damian J.
johny_s
włącz slowlogi na bazie
damian.1923
OK. były włączone, nie spodziewałem się że będzie zapisywał zdarzenia które nie doszły do skutku,
oto pierwsze 2 wpisy z polecenia mysqldumpslow:

Count: 3 Time=906.95s (2720s) Lock=0.00s (0s) Rows=0.0 (0), mysql-goliat[mysql-goliat]@localhost
TRUNCATE TABLE ***********.***********

Count: 10 Time=27.60s (276s) Lock=0.00s (0s) Rows=0.6 (6), mysql-damian[mysql-damian]@localhost
SELECT ***********


dlaczego truncate wykonuje się tak długo?
podsumowanie tabeli, którą próbował czyścić:

MyISAM utf8_general_ci
rozmiar danych 200 012
rozmiar indeksów 102 400
wolne miejsce 0
liczba rekodów 4 177


OK. tabela była źle stworzona, bez kolumny z id,
coś jednak nadal jest nie tak z tą bazą bo powinna działać sprawniej, w każdym razie temat można chyba zamknąć.
Dziękuję i pozdrawiam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.