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:
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!