In Version 5.0, MySQL implementierte die Information_schema Datenbank, die als normale Datenbank sichtbar ist. Obwohl sein Verhalten und seine Funktionalität einer normalen Datenbank ähnlich sind, sind die in der Datenbank enthaltenen Informationen nicht alle regulären Daten.
Hier ist der beste Weg, den ich beschreiben kann MySQL Information_schema Datenbank. Es handelt sich um eine Datenbank, die Informationen zu anderen Datenbanken enthält. Es ist in jeder MySQL -Instanz verfügbar und wird verwendet, um Metadateninformationen zu allen anderen Datenbanken auf dem Server zu speichern. Es wird auch als Systemkatalog oder Datenwörterbuch bezeichnet.
Wie alle MySQL -Datenbanken sind die Informationen in der Information_schema Die Datenbank wird in schreibgeschützten Tabellen gespeichert. In Wirklichkeit sind es jedoch Ansichten und nicht die Basis von MySQL -Tabellen. In diesem Sinne können Sie mySQL -Auslöser weder gegen die in der Datenbank gespeicherten Tabellen ausführen, noch sind sie Dateien zugeordnet.
NOTIZ: Sie werden auch kein Verzeichnis im Namen von finden Information_schema.
Trotzdem die, die Information_schema Die Datenbank ist der perfekte Ort, um Informationen zu anderen auf dem Server gespeicherten Datenbanken abzufragen. Dieses Tutorial zielt darauf ab, Ihnen einen Überblick darüber zu geben Information_schema Datenbank und geben Sie einige Beispiele für die Verwendung der Datenbank.
Grundlegende Informationen zu Information_Schema
Ab MySQL 5.0 und höher, wenn Sie die Datenbanken anzeigen, die ausführen, die Information _scheme Datenbank ist sichtbar und kann als normale Datenbank verwendet werden.
MySQL> Datenbanken anzeigen;
+--------------------+
| Datenbank |
+--------------------+
| Information_schema |
| Mysql |
| Performance_schema |
| Sakila |
| sys |
| Welt |
+--------------------+
6 Zeilen im Set (0.00 Sek.)
Man kann die Datenbank für Information_Schema einfach mithilfe der MySQL -Abfrage verwenden wie folgt:
MySQL> verwenden Information_Schema;
Sobald Sie in der Datenbank sind, können Sie die Tabellen ansehen, die mit dem Befehl als:
MySQL> Tische anzeigen;
+---------------------------------------+
| Tables_in_information_schema |
+---------------------------------------+
| AdministratBle_ROLE_Authorisierungen |
| Anwendbarer_roles |
| Charakter_sets |
| Check_constraints |
| Collation_Character_set_Applicability |
| Kollationen |
| Column_privileges |
| Column_statistics |
| Spalten |
| Columns_extensions |
| Enabled_roles |
| Motoren |
| Ereignisse |
| Dateien |
| Innodb_buffer_page |
| InnoDb_buffer_page_lru |
-----------Daten abgeschnitten----------------
Die obige Ausgabe zeigt einige der in der Datenbank von Information_Schema gespeicherten Tabellen. Denken Sie daran, dass sie keine tatsächlichen Tabellen sind und daher nicht geändert werden können. Stattdessen werden sie im Speicher gespeichert und fallen gelassen, sobald der MySQL -Server heruntergefahren ist. Beim Neustart wird das Information_Schema umgebaut und mit den vorhandenen Daten auf dem Server bevölkert.
Wählen Sie aus Information_schema
Um die in der gespeicherten Informationen anzuzeigen Information_schema Datenbank können Sie die Auswahlanweisung verwenden. Zum Beispiel, um Informationen in der Motor -Tabelle aufzulisten, den Befehl als:
MySQL> Wählen Sie * aus Information_schema aus.Motoren;
Dadurch werden die in der Tabelle gespeicherten Daten wie gezeigt gelassen:
Beispiel 1 - Die größten Tabellen zeigen
Das folgende Beispiel zeigt, wie die Verwendung der Verwendung Information_schema Um die größten Datenbanken auf dem Server anzuzeigen.
Wenn Sie die obige Abfrage ausführen, erhalten Sie alle Tische in Ihrer Größe, angefangen von den größten bis zum kleinsten.
Hier ist ein Beispielausgang:
Beispiel 2 - Privilegien zeigen
Verwenden der TABLE_PRIVILEGEGEges in der Datenbank für Informationsschema können wir die Berechtigungen auf dem MySQL -Server abrufen. Einige der Spalten in dieser Tabelle sind:
Mit den oben genannten Informationen können wir die Berechtigungen in der anzeigen Mysql Server mit der Abfrage:
Wählen Sie * aus Information_Schema aus.Schema_privileges;Dieser Befehl gibt Ihnen eine Ausgabe wie gezeigt.
Beispiel 3 - Leitende Prozesse anzeigen
Wir können die verwenden Prozesslist Tabelle erhältlich in der Information_schema Tabelle, um die laufenden Vorgänge auf dem Server anzuzeigen.
Hier ist eine Beispielabfrage, um alle laufenden Prozesse anzuzeigen:
Wählen Sie * aus Information_Schema aus.Prozesslist;Wenn Sie alle laufenden Prozesse ablegen, wird eine Ausgabe angezeigt, die der gezeigten ähnlich ist:
Sie können auch den Befehl verwenden
Vollständige Prozessliste anzeigen, Dies zeigt ähnliche Informationen wie die Abfrage der Prozesslist Tisch in der Information_schema.
Beispiel 4 - Tabelle Indexinformationen anzeigen
Mit der Tabelle Statistik können wir Informationen zu Tabellenindizes anzeigen. Hier ist eine Beispielanfrage:
Wählen Sie * aus Information_Schema aus.Statistiken wobei Tabelle_schema = 'Sakila' Grenze 5;Informationen zu allen Indizes im Sakila -Schema, wie unten gezeigt:
Dies sind einige der Beispiele, die Sie von der abfragen können Information_schema Datenbank.
Abschluss
Der Information_schema Die Datenbank ist eine Informationsquelle für alle anderen Datenbanken und den MySQL -Server selbst. Darüber hinaus bietet es Ihnen eine Vielzahl von Optionen zum Verwalten und Optimieren für die Informationen zur Abfrage. Wenn Sie die Kraft von kombinieren Vornmation_schema Und die Magie von SQL, Sie haben die größte Leistung eines jeden Datenbankbenutzers.
Vielen Dank für das Lesen und SQL -Zeit!