Exemplos MySQL Information_schema

Exemplos MySQL Information_schema

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:

  • Donatário - Isso mostra a conta do MySQL à qual o privilégio é concedido. Isso geralmente está no formato de nome de usuário@hostname.
  • Tabela_catalog - Contém o nome do catálogo ao qual a tabela pertence. O valor é def por padrão.
  • Tabela_schema - O nome do banco de dados ao qual a tabela pertence.
  • NOME DA TABELA - O nome da mesa.
  • IS_GRANTEE - Valor booleano se o usuário tiver privilégio de concessão. Geralmente contém um valor de sim ou nã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!