MySQL Information_schema Ejemplos

MySQL Information_schema Ejemplos

En la versión 5.0, MySQL implementó el Información_schema base de datos, que es visible como una base de datos normal. Aunque su comportamiento y funcionalidad son similares a una base de datos normal, la información contenida en la base de datos no son todos los datos regulares.

Aquí está la mejor manera que puedo describir el Mysql información_schema base de datos. Es una base de datos que contiene información sobre otras bases de datos. Está disponible en cada instancia de MySQL y se utiliza para almacenar información de metadatos sobre todas las demás bases de datos en el servidor. También se llama catálogo del sistema o diccionario de datos.

Como todas las bases de datos MySQL, la información en el Información_schema la base de datos se almacena en tablas de solo lectura. Sin embargo, en realidad, son vistas y no basan las tablas MySQL. En ese sentido, no puede realizar desencadenantes mySQL con las tablas almacenadas en la base de datos, ni hay ningún archivo asociado con ellas.

NOTA: Tampoco encontrará un directorio en nombre de Información_schema.

A pesar de todo eso, el Información_schema La base de datos es el lugar perfecto para consultar información sobre otras bases de datos almacenadas en el servidor. Este tutorial tiene como objetivo proporcionarle una visión general del Información_schema base de datos y darle algunos ejemplos de uso de la base de datos.

Información básica sobre información_schema

A partir de mysql 5.0 y superior, si ejecuta las bases de datos del programa, las Información _schema Base de datos es visible y se puede usar como una base de datos normal.

MySQL> Mostrar bases de datos;
+--------------------+
| Base de datos |
+--------------------+
| Information_schema |
| mysql |
| Performance_schema |
| Sakila |
| SYS |
| Mundo |
+--------------------+
6 filas en el set (0.00 seg)

Uno puede usar la base de datos Information_schema simplemente utilizando la consulta de uso mysql como:

mySQL> use información_schema;

Una vez en la base de datos, puede ver las tablas almacenadas usando el comando como:

MySQL> Mostrar tablas;
+---------------------------------------+
| Tablas_in_information_schema |
+---------------------------------------+
| Administrable_role_authorizations |
| Aplicable_roles |
| Caracteres_sets |
| Check_constraints |
| Collation_character_set_applicability |
| Collations |
| Column_privileges |
| Column_statistics |
| Columnas |
| Columns_extensions |
| Habilitado_roles |
| Motores |
| Eventos |
| Archivos |
| Innodb_buffer_page |
| Innodb_buffer_page_lru |
-----------Datos truncados----------------

La salida anterior muestra algunas de las tablas almacenadas en la base de datos Information_schema. Recuerde que no son tablas reales y, por lo tanto, no pueden modificarse. En cambio, se almacenan en la memoria y se caen una vez que el servidor MySQL se apaga. Tras el reinicio, el Information_Schema se reconstruye y se pobla con los datos existentes en el servidor.

Seleccione de Information_Schema

Para ver la información almacenada en el información_schema base de datos, puede usar la instrucción SELECT. Por ejemplo, para enumerar la información en la tabla de motores, el comando como:

mysql> seleccionar * de información_schema.motores;

Esto arrojará los datos almacenados en la tabla como se muestra:

Ejemplo 1 - Mostrar tablas más grandes

El siguiente ejemplo muestra cómo usar el Información_schema Para mostrar las bases de datos más grandes del servidor.

Al ejecutar la consulta anterior, obtendrá todas las tablas de su tamaño, comenzando de la más grande a la más pequeña.

Aquí hay una salida de ejemplo:

Ejemplo 2 - Mostrar privilegios

Usando la base de datos TABLE_PRIVILEGS en la base de datos del esquema de información, podemos obtener los privilegios en el servidor MySQL. Algunas de las columnas en esta tabla son:

  • Otorgante - Esto muestra la cuenta mySQL a la que se otorga el privilegio. Esto suele estar en el formato de nombre de usuario@hostname.
  • Table_catalog - Contiene el nombre del catálogo al que pertenece la tabla. El valor es DEF por defecto.
  • Table_schema - El nombre de la base de datos a la que pertenece la tabla.
  • NOMBRE DE LA TABLA - El nombre de las mesa.
  • Is_grantee - Valor booleano si el usuario tiene privilegio de subvención. Generalmente contiene un valor de sí o no.

Usando la información anterior, podemos ver los privilegios en el Mysql servidor usando la consulta:

Seleccionar * de Information_Schema.Schema_privileges;

Este comando le dará una salida como se muestra.

Ejemplo 3 - Mostrar procesos de ejecución

Podemos usar el LISTA DE PROCESOS tabla disponible en el Información_schema tabla para ver las operaciones en ejecución en el servidor.

Aquí hay una consulta de ejemplo para mostrar todos los procesos de ejecución:

Seleccionar * de Information_Schema.LISTA DE PROCESOS;

Doblar todos los procesos de ejecución mostrará una salida similar a la que se muestra:

También puedes usar el comando

Mostrar lista de procesos completos, que mostrará información similar a la consulta del LISTA DE PROCESOS mesa en el Información_schema.

Ejemplo 4 - Mostrar información de índices de tabla

Usando la tabla de estadísticas, podemos mostrar información sobre los índices de tabla. Aquí hay una consulta de ejemplo:

Seleccionar * de Information_Schema.Estadísticas donde table_schema = 'sakila' límite 5;

Información sobre todos los índices en el esquema de Sakila como se muestra a continuación:

Esos son algunos de los ejemplos que puede consultar desde el Información_schema base de datos.

Conclusión

El Información_schema La base de datos es una fuente de información para todas las demás bases de datos y el servidor MySQL en sí mismo. Además, le proporciona una gran cantidad de opciones para administrar y ajustar la información para consultar. Si combinas el poder de Infornmation_schema y la magia de SQL, tienes la mayor potencia de cualquier usuario de la base de datos.

Gracias por leer y tiempo SQL!