I versjon 5.0, MySQL implementerte Informasjon_schema Database, som er synlig som en normal database. Selv om dens oppførsel og funksjonalitet ligner en normal database, er informasjonen i databasen ikke alle vanlige data.
Her er den beste måten jeg kan beskrive MySQL Information_schema database. Det er en database som inneholder informasjon om andre databaser. Det er tilgjengelig i alle MySQL -forekomster og brukes til å lagre metadatainformasjon om alle andre databaser på serveren. Det kalles også systemkatalogen eller dataordboken.
Som alle MySQL -databasene, informasjonen i Informasjon_schema Databasen lagres i skrivebeskyttede tabeller. Imidlertid er de synspunkter og ikke baserer MySQL -tabeller. I den forstand kan du ikke utføre MySQL -utløsere mot tabellene som er lagret i databasen, og det er heller ingen filer tilknyttet dem.
MERK: Du vil heller ikke finne en katalog i navnet til Informasjon_schema.
Til tross for alt dette, den Informasjon_schema Database er det perfekte stedet å spørre om informasjon om andre databaser som er lagret på serveren. Denne opplæringen tar sikte på å gi deg en oversikt over Informasjon_schema database og gi deg noen få eksempler på å bruke databasen.
Grunnleggende informasjon om informasjon_schema
Som av mysql 5.0 og over, hvis du utfører showdatabasene, Informasjon _Schema -database er synlig og kan brukes som en normal database.
MySQL> Vis databaser;
+--------------------+
| Database |
+--------------------+
| informasjon_schema |
| mysql |
| Performance_schema |
| Sakila |
| SYS |
| verden |
+--------------------+
6 rader i settet (0.00 sek)
Man kan bruke Information_schema -databasen ganske enkelt ved å bruke MySQL -bruksspørsmålet som:
mysql> bruk informasjon_schema;
En gang i databasen, kan du se tabellene som er lagret ved å bruke kommandoen som:
mysql> vis tabeller;
+---------------------------------------+
| Tables_in_informasjon_schema |
+---------------------------------------+
| Administrable_role_autorisasjoner |
| AppLicable_roles |
| Character_sets |
| CHECK_CONSTRAINTS |
| COLLATION_CHARACTER_SET_APPLICABILITY |
| COLLASJONER |
| Kolonne_privileges |
| Kolonne_statistikk |
| Kolonner |
| COLUNTS_EXTENSJONS |
| Enabled_roles |
| Motorer |
| Hendelser |
| Filer |
| Innodb_buffer_page |
| Innodb_buffer_page_lru |
-----------Data avkortet----------------
Ovennevnte utdata viser noen av tabellene som er lagret i Information_schema -databasen. Husk at de ikke er faktiske tabeller og derfor ikke kan endres. I stedet blir de lagret i minnet og droppet når MySQL -serveren er lagt ned. Ved omstart gjenoppbygges informasjon_schema og befolket med eksisterende data på serveren.
Velg fra informasjon_schema
For å se informasjonen som er lagret i informasjon_schema Database, du kan bruke SELECT -setningen. For eksempel for å liste opp informasjon i motorens tabell, kommandoen som:
mysql> velg * fra informasjon_schema.motorer;
Dette vil dumpe dataene som er lagret i tabellen som vist:
Eksempel 1 - Vis største tabeller
Eksemplet nedenfor viser hvordan du bruker Informasjon_schema For å vise de største databasene på serveren.
Når du utfører spørringen ovenfor, vil du få alle tabellene i din størrelse, fra den største til den minste.
Her er et eksempelutgang:
Eksempel 2 - Vis privilegier
Ved å bruke tabell_privileges i informasjonsskjemadatabasen, kan vi få privilegiene på MySQL -serveren. Noen av kolonnene i denne tabellen er:
Ved hjelp av informasjonen ovenfor kan vi se privilegiene i Mysql server ved hjelp av spørringen:
Velg * fra informasjon_schema.Schema_privileges;Denne kommandoen vil gi deg en utdata som vist.
Eksempel 3 - Vis løpsprosesser
Vi kan bruke Prosessliste Tabell tilgjengelig i Informasjon_schema Tabell for å se løpsoperasjonene på serveren.
Her er et eksempel på spørring for å vise alle løpsprosesser:
Velg * fra informasjon_schema.Prosessliste;Dumping av alle løpsprosessene vil vise en utgang som ligner den som er vist:
Du kan også bruke kommandoen
Vis full prosessliste, som vil vise lignende informasjon som å spørre om Prosessliste bord i Informasjon_schema.
Eksempel 4 - Vis tabellindekser informasjon
Ved hjelp av statistikktabellen kan vi vise informasjon om tabellindekser. Her er et eksempel på spørring:
Velg * fra informasjon_schema.Statistikk der tabell_schema = 'Sakila' grense 5;Informasjon om alle indeksene i Sakila -skjemaet som vist nedenfor:
Det er noen av eksemplene du kan spørre fra Informasjon_schema database.
Konklusjon
De Informasjon_schema Database er en informasjonskilde for alle andre databaser og MySQL -serveren selv. I tillegg gir det deg en mengde alternativer for å administrere og finjustere for informasjonen å spørre. Hvis du kombinerer kraften til Infornmation_schema Og magien i SQL, du har mest mulig strøm fra en hvilken som helst databasebruker.
Takk for at du har lest og SQL -tid!