MySQL Information_Schema Beispiele

MySQL Information_Schema Beispiele

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:

  • Stipendiat - Dies zeigt das MySQL -Konto, dem das Privileg gewährt wird. Dies befindet sich normalerweise im Format von Benutzername@hostname.
  • Table_catalog - Enthält den Namen des Katalogs, zu dem die Tabelle gehört. Der Wert ist standardmäßig definitiv.
  • Table_schema - Der Name der Datenbank, zu der die Tabelle gehört.
  • TABELLENNAME - Der Name der Tabelle.
  • Is_grantee - Boolescher Wert, wenn der Benutzer ein Gewährungsberechtigte hat. Enthält normalerweise einen Wert von Ja oder Nein.

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!