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