Найкритичнішим у цій команді є стовпець станів, і стани, перелічені в mysql, переважно такі:
Контрольна таблиця Перевіряю технічний лист (це автоматично). Закриття столів Дані, змінені в таблиці, передаються на диск, а витрачена таблиця закривається. Це швидка операція, якщо ні — перевірте, чи заповнений дисковий простір або чи диск під навантаженням. Зв'язок Сервер реплікації підключається до основного сервера. Копіювання у таблицю tmp на диску Оскільки тимчасовий набір результатів більший за tmp_table_size, тимчасова таблиця конвертується з вбудованої пам'яті на дискове сховище для збереження пам'яті. Створення таблиці tmp Створюється тимчасова таблиця для зберігання деяких результатів запитів. Видалення з головної таблиці Сервер виконує першу частину багатостольного видалення і щойно видалив першу таблицю. Видалення з таблиць посилань Сервер виконує другу частину багатостольного видалення — видалення записів з інших таблиць. Стіл для змивання Роблю ПРОМИВАННЯ ТАБЛИЦЬ, чекаю, поки інші потоки закриють таблицю даних. Вбитий Якщо запит на вибивство надсилається потоку, він перевіряє прапорець і відмовляється від наступного запиту. MySQL перевіряє наявність прапорців знищення в кожному основному циклі, хоча в деяких випадках потік може на короткий час зупинитися. Якщо потік заблокований іншим потоком, запит на вимкнення набуде чинності одразу після зняття блокування. Замкнено Заблоковано іншими запитами. Передача даних Запис запиту SELECT обробляється, поки результати надсилаються клієнту. Сортування для групи Сортування для GROUP BY. Сортування за порядком Сортування відбувається для ORDER BY. Відкриття столів Цей процес має бути швидким, якщо тільки не заважають інші фактори. Наприклад, таблицю даних не може відкрити іншим потоком, доки не буде виконано оператор ALTER TABLE або LOCK TABLE. Намагаюся відкрити стіл. Видалення дублікатів Виконується запит SELECT DISTINCT, але MySQL не може оптимізувати дублікати записів на попередньому етапі. Тому MySQL має знову видалити дублікати записи перед відправкою результатів клієнту. Відкрийте стіл Блокування на таблиці отримується, але його потрібно змінити після зміни структури таблиці. Вже зняв блокування, закрив технічний лист і намагається знову відкрити таблицю даних. Ремонт шляхом сортування Інструкція fix — це сортування для створення індексу. Ремонт за допомогою keycache Директива fix полягає у використанні кешу індексу для створення нових індексів один за одним. Він буде повільнішим за ремонт через сортування. Пошук оновлень у рядках Визначаються відповідні записи для оновлення. Це має бути зроблено до того, як UPDATE змінить відповідний запис. Сон Чекаю, поки клієнт надішле новий запит. Системний замок Чекаю на зовнішнє системне блокування. Якщо одночасно немає серверів mysqld, які запитують ту ж таблицю, зовнішні системні блокування можна заборонити, додавши параметр –skip-external-locking. Оновлення замків INSERT DELAYED намагається отримати таблицю блокування для вставки нового запису. Оновлення Пошук відповідних записів і їх модифікація. Користувацький замок чекає на GET_LOCK(). Обслуговуючи столики Потік було сповіщено, що структура технічного листа була змінена і її потрібно знову відкрити для отримання нової структури. Потім, щоб знову відкрити таблицю даних, потрібно дочекатися, поки всі інші потоки закриють таблицю. Це сповіщення відбувається у таких випадках: FLUSH TABLES tbl_name, ALTER TABLE, RENAME TABLE, REPAIR TABLE, ANALYZE TABLE або OPTIMIZE TABLE. Чекаю на вставку обробника INSERT DELAYED обробив усі очікувані вставки і чекає на новий запит. Більшість станів відповідають швидким операціям, якщо потік залишається в одному стані кілька секунд, можливо, виникає проблема, яку потрібно перевірити. |