Mysql Bases de datos del sistema

De MediaWiki
Saltar a: navegación, buscar

Introducción

  • Cuando se instala Mysql se crean dos bases de datos donde se guarda información sobre las tablas, bases de datos, usuarios, permisos,...
  • Este tipo de información se conoce como metadatos, datos acerca de los datos y conforma una de los componentes de un Sistema de Gestión de Bases de Datos, que es el Diccionario de datos.


  • Recordar que para hacer una base de datos 'activa' se puede utilizar la orden SQL: use NOMBRE_BD;
De esta forma, podemos seleccionar las tablas sin necesidad de anteponer el nombre de la base de datos de la forma 'FROM nombre_bd.nombre_tabla'.


  • Para ver las bases de datos del sistema desde MysqlWorkBench debemos cambiar una opción de la configuración:

Base de datos Information_Schema

  • En esta base de datos está guardada toda la información sobre las bases de datos, tablas, vistas, triggers,... creadas en Mysql.
  • Las tablas que conforman esta base de datos realmente son vistas.
  • De esta forma, podemos consultar, por ejemplo, los nombres de las tablas creadas en una base de datos (en el ejemplo el nombre de la base de datos es employees, instalada previamente.
  1. SELECT table_name, table_type, engine
  2. FROM information_schema.tables
  3. WHERE table_schema = 'employees'
  4. ORDER BY table_name DESC;
Dará como resultado:
  1. 'titles', 'BASE TABLE', 'InnoDB'
  2. 'salaries', 'BASE TABLE', 'InnoDB'
  3. 'employees', 'BASE TABLE', 'InnoDB'
  4. 'dept_manager', 'BASE TABLE', 'InnoDB'
  5. 'dept_emp_latest_date', 'VIEW', NULL
  6. 'dept_emp', 'BASE TABLE', 'InnoDB'
  7. 'departments', 'BASE TABLE', 'InnoDB'
  8. 'current_dept_emp', 'VIEW', NULL


  • Esta orden SQL es lo mismo que poner:
  1. show tables;
Muestra los nombres de las tablas.
Esta es la forma habitual de consultar la información, pero de la forma anterior no tendremos que aprendernos una sintaxis específica ya que utiliza SQL.
  • Otra orden sería obtener una descripción de la estructura de una tabla:
  1. DESC titles;
Que sería equivalente a esta consulta:
  1. SELECT COLUMN_NAME,DATA_TYPE,IS_NULLABLE,COLUMN_KEY,COLUMN_DEFAULT,EXTRA
  2. FROM information_schema.COLUMNS
  3. WHERE TABLE_NAME='titles';



Base de datos Mysql

  • Forma parte del diccionario de datos y es el lugar donde se almacena información relacionada con los parámetros del gestor y los usuarios que tienen acceso al gestor y a las bases de datos del sistema, así como de los permisos asociados a dichos usuarios.
  • Por ejemplo, la siguiente instrucción muestra los usuarios creados en el gestor.
  1. select Host,User
  2. from mysql.user



Base de datos sys y performance_schema

  • La base de datos sys existe desde la versión Mysql 5.7.7 y contiene una serie de objetos (vistas, procedimientos y funciones) que van permitir al DBA (database administrator) analizar la información recogida sobre el rendimiento del gestor a través de la base de datos 'performance_schema'.


  • Ejemplo de consultas sobre esta base de datos:
  1. use sys;
  2. SELECT * FROM version;
Devuelve (en mi caso):
 '1.5.1', '5.7.19-0ubuntu0.16.04.1-log'


  • Podemos acceder gráficamente a esta base de datos y obtener informes a través del MysqlWorkBench.
Mysql bd sistema 3.jpg
Si pulsamos el botón Copy Query obtendremos la consulta sobre la base de datos 'sys'. En el ejemplo tendríamos esta consulta:
  1. select * from sys.`x$io_global_by_file_by_bytes`



-- Ángel D. Fernández González -- (2017).