Forklar nøkkelordutgang for velg spørring:
Når forklaringsnøkkelordet blir utført med SELECT -setningen, vil utdataene fra forklaringen returnere følgende kolonner.
Kolonne | Beskrivelse |
id | Det indikerer identifikatoren til spørringen. Det representerer det sekvensielle antallet utvalgte spørsmål. |
SELECT_TYPE | Det indikerer hvilken type valgt spørring. Typen kan være enkel, primær, subquery, union osv. |
bord | Det indikerer tabellnavnet som brukes i spørringen. |
partisjoner | Det indikerer partisjonene i den undersøkte partisjonerte tabellen. |
type | Det indikerer at sammenkoblingstypen eller tilgangstypen på tabellene. |
mulige_keys | Det indikerer nøklene som kan brukes av MySQL for å finne rader fra bordet. |
nøkkel | Det indikerer indeksen som brukes av mysql. |
Key_len | Det indikerer lengden på indeksen som vil bruke av spørringsoptimisatoren. |
ref | Det indikerer kolonnene eller konstantene som er sammenlignet med indeksen som er nevnt i nøkkelkolonnen |
rader | Det indikerer listene over poster som ble undersøkt. |
filtrert | Det indikerer den estimerte prosentandelen av tabellrader som vil bli filtrert av tilstanden. |
ekstra | Det indikerer tilleggsinformasjonen om utførelsesplanen. |
Anta at du har to relaterte tabeller som heter Kunder og bestillinger i databasen som heter selskap. De nødvendige SQL -utsagnene for å opprette databasen og tabellene med data er gitt nedenfor.
Opprette databaseselskap;Kjør følgende uttalelse for å se den gjeldende postlisten over Kunder bord.
Velg * fra kunder;Kjør følgende uttalelse for å se den gjeldende postlisten over bestillinger bord.
Velg * fra bestillinger;Bruk av enkel forklaringsuttalelse:
Følgende SQL -setningen vil returnere nøkkelordet til forklaringsoppgaven til en enkel valgt spørring som henter alle poster fra kundetabellen.
Forklar velg * fra kunder \ g;Følgende utgang vises etter å ha kjørt uttalelsen. Det er en enkelt tabellforespørsel og ingen spesielle klausuler som Join, Union osv. brukes i spørringen. For dette, verdien av SELECT_TYPE er ENKEL. Kundetabellen inneholder bare tre poster, det er derfor verdien av rader er 3. Verdien av filtrert er 100% fordi alle poster i tabellen blir hentet.
Bruk av forklaring i Select Query med Join:
Følgende forklaringsuttalelse blir brukt i en valgt spørring av to tabeller med Join Clause og A Where Condition.
Forklar utvalgte kunder.Navn, bestillinger.ordre_date, bestillinger.beløpFølgende utgang vises etter å ha kjørt uttalelsen. Her, SELECT_TYPE er enkelt for begge bordene. To tabeller er relatert til en-til-mange forhold. Den primære nøkkelen av Kunder Tabellen brukes som en fremmed nøkkel av bestillinger bord. For dette, verdien av mulige_keys for den andre raden er Kunde ID. Den filtrerte verdien er 33% til Kunder bord fordi 'Johnathan' er den første oppføringen av denne tabellen og trenger ikke å søke mer. Den filtrerte verdien av bestillinger tabellen er 100% På grunn av alle verdier av bestillinger Tabell som kreves for å sjekke for å hente dataene.
Det er en advarsel i utdataene fra ovennevnte uttalelse. Følgende uttalelse brukes til å se spørringen som utføres etter å ha gjort noen endring av spørringsoptimisatoren eller sjekk årsaken til feilen hvis det oppstår noen feil etter å ha utført spørringen.
Vis advarsler \ GDet er ingen feil i spørringen. Utgangen viser den modifiserte spørringen som blir utført.
Bruk av forklar for å finne ut feilen i SELECT -spørring:
SELECT -spørringen som brukes i følgende forklaringsuttalelse inneholder en feil. Datoformatet som støttes av MySQL er 'Yyyy-mm-dd'. Men i hvor tilstanden til denne spørringen er datoverdien gitt som 'Dd-mm-yyyy' det er feil.
Forklar utvalgte kunder.Navn, bestillinger.ordre_date, bestillinger.beløpFølgende utdata vises etter å ha kjørt uttalelsen. Det vil vise to advarsler. Den ene er standard som er forklart i forrige eksempel, og en annen er for datofeilen som er nevnt før.
Kjør uttalelsen for å se feilen.
Vis advarsler \ GUtgangen viser feilen tydelig med en feilmelding og kolonnenavn.
Bruk av forklaring i Select Query with Union All Operator:
Union All Operator brukes i SELECT -spørringen for å hente alle samsvarende kolonneverdier med duplikater fra de relaterte tabellene. Følgende uttalelse vil vise forklaringsutgangen til å bruke unions all operatør mellom Kunder og bestillinger bord.
Forklar velg ID som IDFølgende utgang vises etter å ha kjørt uttalelsen. Her, verdien av SELECT_TYPE er Union for den andre raden i utgangen og verdien av Ekstra er indeksen.
Konklusjon:
Veldig enkel bruk av forklaringsuttalelsen vises i denne artikkelen. Men denne uttalelsen kan brukes til å løse forskjellige kompliserte databaseproblemer og optimalisere databasen for bedre ytelse.