Najważniejszym elementem tego polecenia jest kolumna stanów, a stany wymienione w mysql są głównie następujące:
Tabela kontrolna Sprawdzam kartę katalogową (to jest automatyczna). Stoły zamykające Dane zmodyfikowane w tabeli są przenoszone na dysk, a tabela, która została zużyta, jest zamykana. To szybka operacja, jeśli nie, sprawdź, czy przestrzeń na dysku jest zajęta lub czy dysk jest obciążony. Connect Out Serwer slave replikacji łączy się z serwerem głównym. Kopiowanie do tabeli tmp na dysku Ponieważ tymczasowy zbiór wyników jest większy niż tmp_table_size, tabela tymczasowa jest konwertowana z pamięci na dysk, aby zachować pamięć. Tworzenie tabeli tmp Tworzona jest tymczasowa tabela, która przechowuje niektóre wyniki zapytań. usuwanie z głównej tabeli Serwer wykonuje pierwszą część usuwania wielu tabel i właśnie usunął pierwszą tabelę. usuwanie z tabel referencyjnych Serwer wykonuje drugą część usuwania wielu tabel, czyli usuwanie rekordów z innych tabel. Tablice do płukania Robię TABLICE FLUSH, czekam aż inne wątki zamkną tabelę danych. Zabity Jeśli do wątku zostanie wysłane żądanie zabicia, wątek sprawdzi flagę zabicia i porzuci kolejne żądanie zabicia. MySQL sprawdza flagi wyłączenia w każdej głównej pętli, choć w niektórych przypadkach wątek może zostać wyłączony na krótki czas. Jeśli wątek zostanie zablokowany przez inny wątek, żądanie zakończenia zadziała natychmiast po zwolnieniu blokady. Zablokowane Zablokowane przez inne zapytania. Wysyłanie danych Rekord zapytania SELECT jest przetwarzany, podczas gdy wyniki są wysyłane do klienta. Sortowanie dla grupy Sortowanie dla GRUP BY. Sortowanie pod kątem kolejności Sortowanie jest prowadzone dla ORDER BY. Tabele otwarcia Proces ten powinien być szybki, chyba że przeszkadzają mu inne czynniki. Na przykład tabela danych nie może zostać otwarta przez inny wątek, dopóki nie zostanie wykonana instrukcja ALTER TABLE lub LOCK TABLE. Próba otwarcia stołu. Usuwanie duplikatów Wykonywane jest SELECT Distinct zapytanie, ale MySQL nie jest w stanie zoptymalizować zduplikowanych rekordów w poprzednim etapie. Dlatego MySQL musi ponownie usunąć zduplikowane rekordy przed wysłaniem wyników do klienta. Stoł ponownego otwarcia Uzyskuje się blokadę na tabeli, ale musi ona zostać zmodyfikowana po modyfikacji struktury tabeli. Już zwolniłem zamek, zamknąłem kartę danych i próbuję ponownie otworzyć tabelę danych. Naprawa przez sortowanie Instrukcja fix to sortowanie w celu utworzenia indeksu. Naprawa za pomocą keycache Dyrektywa naprawcza polega na wykorzystaniu pamięci podręcznej indeksów do tworzenia nowych indeksów jeden po drugim. Będzie wolniejsze niż Naprawa przez sortowanie. Wyszukiwanie w wierszach pod kątem aktualizacji Kwalifikujące się dokumenty są identyfikowane do aktualizacji. Musi to zostać zrobione przed modyfikacją odpowiedniego rekordu przez AKTUALIZACJĘ. Spanie Czekam, aż klient wyśle nowe żądanie. System lock Czekam na uzyskanie zewnętrznej blokady systemowej. Jeśli nie działa żaden serwer mysqld jednocześnie żądający tej samej tabeli, zewnętrzne blokady systemowe można zabronić, dodając parametr –skip-external-lock. Zamek modernizacyjny INSERT DELAYED to próba wprowadzenia nowego rekordu w tabeli blokady. Aktualizacja Wyszukiwanie pasujących rekordów i ich modyfikacja. Blokada użytkownika czeka na GET_LOCK(). Obsługa stolików Wątek został powiadomiony, że struktura arkusza danych została zmodyfikowana i należy ją ponownie otworzyć, aby otrzymać nową konstrukcję. Następnie, aby ponownie otworzyć tabelę danych, musisz poczekać, aż wszystkie inne wątki zamkną tabelę. To powiadomienie pojawia się w następujących przypadkach: FLUSH TABLES tbl_name, ALTER TABLE, RENAME TABLE, REPAIR TABLE, ANALYZE TABLE lub OPTIMIZE TABLE. Czekam na wkładkę handlera INSERT DELAYED przetworzył wszystkie oczekujące wstawki i czeka na nowe żądanie. Większość stanów odpowiada szybkim operacjom, o ile wątek pozostaje w tym samym stanie przez kilka sekund, może pojawić się problem wymagający sprawdzenia. |