Na versão 5.0, MySQL implementou o Information_schema banco de dados, que é visível como um banco de dados normal. Embora seu comportamento e funcionalidade sejam semelhantes a um banco de dados normal, as informações contidas no banco de dados não são todos dados regulares.
Aqui está a melhor maneira de descrever o Mysql Information_schema base de dados. É um banco de dados contendo informações sobre outros bancos de dados. Está disponível em todas as instâncias do MySQL e é usado para armazenar informações de metadados sobre todos os outros bancos de dados no servidor. Também é chamado de catálogo do sistema ou dicionário de dados.
Como todos os bancos de dados MySQL, as informações no Information_schema Banco de dados é armazenado em tabelas somente leitura. No entanto, na verdade, são visões e não baseiam tabelas MySQL. Nesse sentido, você não pode realizar gatilhos MySQL contra as tabelas armazenadas no banco de dados, nem existem arquivos associados a eles.
OBSERVAÇÃO: Você também não encontrará um diretório em nome de Information_schema.
Apesar de tudo isso, o Information_schema O banco de dados é o lugar perfeito para consultar informações sobre outros bancos de dados armazenados no servidor. Este tutorial tem como objetivo fornecer uma visão geral do Information_schema banco de dados e dê alguns exemplos de uso do banco de dados.
Informações básicas sobre Information_schema
A partir do mysql 5.0 e acima, se você executar os bancos de dados de show, o Informações _schema banco de dados é visível e pode ser usado como um banco de dados normal.
MySQL> Mostrar bancos de dados;
+--------------------+
| Banco de dados |
+--------------------+
| Information_schema |
| mysql |
| performance_schema |
| Sakila |
| sys |
| mundo |
+--------------------+
6 linhas no set (0.00 seg)
Pode -se usar o banco de dados Information_schema simplesmente usando o MySQL Use a consulta como:
mysql> use Information_schema;
Uma vez no banco de dados, você pode visualizar as tabelas armazenadas usando o comando como:
MySQL> Mostrar tabelas;
+---------------------------------------+
| Tables_in_information_schema |
+---------------------------------------+
| Administrable_role_authorizations |
| Aplicável_roles |
| Caracteres |
| Check_constransts |
| Collation_Character_set_applicability |
| COLAÇÕES |
| Column_privileges |
| Column_statistics |
| Colunas |
| Colunns_extensions |
| Enabled_roles |
| Motores |
| Eventos |
| Arquivos |
| Innodb_buffer_page |
| Innodb_buffer_page_lru |
-----------Dados truncados----------------
A saída acima mostra algumas das tabelas armazenadas no banco de dados Information_schema. Lembre -se de que eles não são tabelas reais e, portanto, não podem ser modificados. Em vez disso, eles são armazenados na memória e caídos quando o servidor MySQL é desligado. Ao reiniciar, o Information_schema é reconstruído e preenchido com os dados existentes no servidor.
Selecione em Information_schema
Para ver as informações armazenadas no Information_schema Banco de dados, você pode usar a instrução SELECT. Por exemplo, para listar informações na tabela de motores, o comando como:
mysql> selecione * de Information_schema.motores;
Isso despejará os dados armazenados na tabela, como mostrado:
Exemplo 1 - mostre as maiores mesas
O exemplo abaixo mostra como usar o Information_schema para mostrar os maiores bancos de dados do servidor.
Ao executar a consulta acima, você obterá todas as tabelas do seu tamanho, começando da maior para a menor.
Aqui está um exemplo de saída:
Exemplo 2 - Mostrar privilégios
Usando o tabela_privileges no banco de dados do esquema de informações, podemos obter os privilégios no servidor MySQL. Algumas das colunas desta tabela são:
Usando as informações acima, podemos ver os privilégios no Mysql servidor usando a consulta:
Selecione * de Information_schema.Schema_privileges;Este comando lhe dará uma saída como mostrado.
Exemplo 3 - Mostrar processos de corrida
Podemos usar o LISTA DE PROCESSOS Tabela disponível no Information_schema tabela para ver as operações em execução no servidor.
Aqui está um exemplo de consulta para mostrar todos os processos de execução:
Selecione * de Information_schema.LISTA DE PROCESSOS;O despejo de todos os processos em execução mostrará uma saída semelhante à mostrada:
Você também pode usar o comando
Mostre uma lista completa de processos, que mostrará informações semelhantes que a consulta o LISTA DE PROCESSOS Tabela no Information_schema.
Exemplo 4 - Mostrar informações de índices de tabela
Usando a tabela de estatísticas, podemos mostrar informações sobre índices de tabela. Aqui está um exemplo de consulta:
Selecione * de Information_schema.Estatísticas onde tabela_schema = 'sakila' limite 5;Informações sobre todos os índices no esquema Sakila, como mostrado abaixo:
Esses são alguns dos exemplos que você pode consultar do Information_schema base de dados.
Conclusão
O Information_schema O banco de dados é uma fonte de informação para todos os outros bancos de dados e o próprio servidor MySQL. Além disso, fornece uma infinidade de opções para gerenciar e ajustar as informações para consultar. Se você combinar o poder de Infecnmation_schema E a magia do SQL, você tem o maior poder de qualquer usuário de banco de dados.
Obrigado pela leitura e hora do SQL!