Przykłady MySQL Information_Schema

Przykłady MySQL Information_Schema

W wersji 5.0, mysql zaimplementował Information_Schema baza danych, która jest widoczna jako normalna baza danych. Chociaż jego zachowanie i funkcjonalność są podobne do normalnej bazy danych, informacje zawarte w bazie danych to nie wszystkie regularne dane.

Oto najlepszy sposób, w jaki mogę opisać MySQL Information_Schema Baza danych. Jest to baza danych zawierająca informacje o innych bazach danych. Jest dostępny w każdej instancji MySQL i służy do przechowywania informacji o metadanych o wszystkich innych bazach danych na serwerze. Nazywa się to również katalogiem systemu lub słownikiem danych.

Podobnie jak wszystkie bazy danych mysql, informacje w Information_Schema Baza danych jest przechowywana w tabelach tylko do odczytu. Jednak w rzeczywistości są to widoki, a nie opierają tabel MySQL. W tym sensie nie możesz wykonywać wyzwalaczy MySQL na tabelach przechowywanych w bazie danych, ani nie są z nimi powiązanych plików.

NOTATKA: Nie znajdziesz również katalogu w imieniu Information_Schema.

Mimo to Information_Schema Baza danych to idealne miejsce do zapytania o informacje o innych bazach danych przechowywanych na serwerze. Ten samouczek ma na celu zapewnienie przeglądu Information_Schema baza danych i podaj kilka przykładów korzystania z bazy danych.

Podstawowe informacje o Information_Schema

Od MySQL 5.0 i powyżej, jeśli wykonasz bazy danych show, Informacje _Schema baza danych jest widoczny i może być używany jako normalna baza danych.

mysql> pokaż bazy danych;
+--------------------+
|. Baza danych |
+--------------------+
|. Information_Schema |
|. Mysql |
|. wydajność_schema |
|. Sakila |
|. Sys |
|. świat |
+--------------------+
6 wierszy w zestawie (0.00 s)

Można użyć bazy danych Information_Schema, używając zapytania MySQL jako:

mysql> Użyj informacji_schema;

W bazie danych możesz wyświetlić tabele przechowywane za pomocą polecenia jako:

Mysql> Pokaż tabele;
+---------------------------------------+
|. TABLE_IN_INFORMATION_SCHEMA |
+---------------------------------------+
|. Administral_Role_authorizations |
|. Obowiązuje_role |
|. Charakter_sets |
|. Check_Constraints |
|. Kolacja_character_set_applicablity |
|. KOLACJE |
|. Kolumn_privileges |
|. Kolumna_statystyka |
|. Kolumny |
|. Kolumny_extensions |
|. Włączone_role |
|. Silniki |
|. Wydarzenia |
|. Pliki |
|. Innodb_buffer_page |
|. Innodb_buffer_page_lru |
-----------Dane obcięte----------------

Powyższe wyjście pokazuje niektóre tabele przechowywane w bazie danych Information_Schema. Pamiętaj, że nie są to rzeczywiste tabele i dlatego nie można ich modyfikować. Zamiast tego są przechowywane w pamięci i upuszczane po zamknięciu serwera MySQL. Po ponownym uruchomieniu informacja_schema jest odbudowana i wypełniona istniejącymi danymi na serwerze.

Wybierz z Information_Schema

Aby wyświetlić informacje przechowywane w Information_Schema baza danych, możesz użyć instrukcji Select. Na przykład, aby wymienić informacje w tabeli silników, polecenie jako:

mysql> Wybierz * z informacji_schema.silniki;

Zrzuci to dane przechowywane w tabeli, jak pokazano:

Przykład 1 - Pokaż największe tabele

Poniższy przykład pokazuje, jak korzystać z Information_Schema Aby pokazać największe bazy danych na serwerze.

Po wykonaniu powyższego zapytania otrzymasz wszystkie tabele w swoim rozmiarze, zaczynając od największego do najmniejszego.

Oto przykład wyjścia:

Przykład 2 - Pokaż uprawnienia

Korzystając z tabeli_privileges w bazie danych schematu informacji, możemy uzyskać uprawnienia na serwerze MySQL. Niektóre kolumny w tej tabeli to:

  • OBDAROWANY - To pokazuje konto MySQL, na które przywilej jest przyznawany. Zazwyczaj jest to w formacie nazwy użytkownika@hostName.
  • TABLE_CATALOG - Zawiera nazwę katalogu, do którego należy tabela. Wartość jest domyślnie def.
  • TABLE_SCHEMA - Nazwa bazy danych, do której należy tabela.
  • NAZWA TABELI - Nazwa tabeli.
  • Is_grantee - Wartość logiczna, jeśli użytkownik ma uprawnienia do grantu. Zwykle zawiera wartość tak lub nie.

Korzystając z powyższych informacji, możemy wyświetlić uprawnienia w Mysql serwer za pomocą zapytania:

Wybierz * z Information_Schema.Schema_privileges;

To polecenie da ci wyjście, jak pokazano.

Przykład 3 - Pokaż uruchomione procesy

Możemy użyć LISTA PROCESÓW Tabela dostępna w Information_Schema Tabela, aby zobaczyć działające operacje na serwerze.

Oto przykładowe zapytanie do pokazania wszystkich działających procesów:

Wybierz * z Information_Schema.LISTA PROCESÓW;

Zrzucenie wszystkich działających procesów pokaże wyjście podobne do pokazanego:

Możesz także użyć polecenia

Pokaż pełną listę procesów, który pokaże podobne informacje jak zapytanie LISTA PROCESÓW Tabela w Information_Schema.

Przykład 4 - Pokaż indeksy tabeli Informacje

Korzystając z tabeli statystyki, możemy wyświetlać informacje o indeksach tabeli. Oto przykładowe zapytanie:

Wybierz * z Information_Schema.Statystyki, w których table_schema = „Sakila” limit 5;

Informacje o wszystkich indeksach w schemacie Sakila, jak pokazano poniżej:

To są niektóre z przykładów, które możesz zapytać z Information_Schema Baza danych.

Wniosek

Information_Schema Baza danych jest źródłem informacji dla wszystkich innych baz danych i samego serwera MySQL. Ponadto zapewnia mnóstwo opcji do zarządzania i dostosowania informacji o zapytaniu. Jeśli połączysz moc Infornmation_schema I magia SQL, masz największą moc każdego użytkownika bazy danych.

Dziękuję za przeczytanie i SQL Time!