Den mest kritiske af denne kommando er tilstandskolonnen, og de tilstande, der er opført i MySQL, er hovedsageligt som følger:
Kontroltabel Tjekker databladet (det sker automatisk). Afslutningstabeller De data, der er ændret i tabellen, bliver fjernet til disken, og den tabel, der er brugt op, bliver lukket. Dette er en hurtig operation, hvis ikke, bør du tjekke, om diskpladsen er fuld, eller om disken er under belastning. Connect Out Replikationsslave-serveren forbinder til den primære server. Kopiering til tmp-tabel på disk Da det midlertidige resultatsæt er større end tmp_table_size, bliver den midlertidige tabel konverteret fra hukommelsen til disklagring for at gemme hukommelsen. Oprettelse af tmp-tabel En midlertidig tabel bliver oprettet for at indeholde nogle af forespørgselsresultaterne. Sletning fra hovedtabellen Serveren udfører den første del af en fler-tabel sletning og har netop slettet den første tabel. Sletning fra referencetabeller Serveren udfører den anden del af multi-table deletion, som er at slette poster fra andre tabeller. Udskylningstabeller At lave FLUSH TABLES og vente på, at andre tråde lukker datatabellen. Dræbt Hvis en kill-anmodning sendes til en tråd, vil tråden tjekke kill-flaget og opgive den næste kill-anmodning. MySQL tjekker for kill-flags i hver hovedløkke, selvom tråden i nogle tilfælde kan dø i en kort periode. Hvis tråden låses af en anden tråd, træder kill-anmodningen i kraft med det samme, når låsen frigives. Låst Låst af andre forespørgsler. Afsender data Registreringen af SELECT-forespørgslen behandles, mens resultaterne sendes til klienten. Sortering efter gruppe Sortering for GRUPPE EFTER. Sortering efter orden Sortering foregår for ORDER BY. Åbningsborde Denne proces bør være hurtig, medmindre andre faktorer forstyrrer den. For eksempel kan en datatabel ikke åbnes af en anden tråd, før ALTER TABLE- eller LOCK TABLE-sætningen er udført. Prøver at åbne et bord. Fjernelse af dubletter En SELECT DIFFERENTIE-forespørgsel bliver udført, men MySQL kan ikke optimere de dubblerede poster i det forrige trin. Derfor skal MySQL igen fjerne de dubletposter, før resultaterne sendes til klienten. Genåbnet bord En lås på en tabel opnås, men den skal ændres efter at tabelstrukturen er ændret. Har allerede frigivet låsen, lukket datasheetet og prøver at åbne datatabellen igen. Reparation ved sortering Fix-instruktionen sorterer for at oprette et indeks. Reparation med keycache Fix-direktivet bruger indekscachen til at oprette nye indekser ét ad gangen. Det vil være langsommere end Reparation ved sortering. Søgning i rækker efter opdatering Berettigede poster bliver identificeret til opdateringer. Det skal gøres, før OPDATERINGEN ændrer den relevante post. Søvn Venter på, at klienten sender en ny anmodning. Systemlås Venter på at opnå en ekstern systemlås. Hvis der ikke kører mysqld-servere samtidig, som anmoder om den samme tabel, kan eksterne systemlåse forbydes ved at tilføje –skip-external-locking-parameteren. Opgradering af sluse INSERT DELAYED prøver at få en låsetabel til at indsætte en ny post. Opdatering Søger efter matchende poster og ændrer dem. Brugerlås venter på GET_LOCK(). Servering af borde Tråden blev underrettet om, at databladstrukturen var blevet ændret og skulle genåbnes for at få den nye struktur. Derefter, for at genåbne datatabellen, skal du vente, indtil alle andre tråde lukker tabellen. Denne meddelelse sker i følgende tilfælde: FLUSH TABLES tbl_name, ÆNDR TABEL, OMDØB TABELL, REPARATIONSTABELL, ANALYZE TABLE eller OPTIMER TABLE. venter på handler-indsættelse INSERT DELAYED har behandlet alle ventende indsættelser og venter på en ny anmodning. De fleste tilstande svarer til hurtige operationer, så længe en tråd forbliver i samme tilstand i et par sekunder, kan der opstå et problem, der skal kontrolleres. |