Professional Documents
Culture Documents
DE MYSQL
COMMUNITY
SERVER
Vistas que resumen los datos del Esquema de rendimiento en una forma más fácil
de entender.
Procedimientos almacenados que realizan operaciones tales como la
configuración del esquema de rendimiento y generación de informes de
diagnóstico.
Funciones almacenadas que consultan la configuración del esquema de
rendimiento y proporcionan servicios de formateo.
Para instalaciones nuevas, el esquema sys se instala de forma predeterminada durante la
inicialización del directorio de datos si utiliza mysqld con la opción --initialize o --initialize-
insegura. Si no se desea, puede soltar el esquema sys manualmente después de la
inicialización si no es necesario.
Los objetos de esquema sys tienen un DEFINER de 'mysql.sys'@'localhost'. El uso de la
cuenta dedicada mysql.sys evita problemas que ocurren si un DBA cambia el nombre o
quita la cuenta raíz.
ESTRUCTURA FÍSICA DE LA BASE DE DATOS
La capa física es donde están almacenados los datos.
En esta figura, los Connectors representan la API que MySQL expone al usuario, por lo
que representaría la parte más cercana al sistema de la capa aplicación. MySQL dispone
de APIs para muchos lenguajes de programación. En la parte más baja podemos ver los
elementos File system y Files & Logsque representan la capa física.
Lo que queda entre medio es la capa lógica, donde reside la funcionalidad del servidor. La
Figura de abajo muestra como es el flujo de ejecución de una sentencia SQL dentro del
servidor.
Una vez la consulta está preparada, su ejecución puede ser directa o bien pasar por el
optimizador si es de tipo SELECT. Esto es así ya que las instrucciones SELECT suelen
ser las potencialmente más costosas ya que pueden necesitar acceder a tablas enteras o
grandes porciones de la base de datos.
Una vez la sentencia está lista para ejecutarse, el acceso a los datos se hace a través de
una interfaz genérica de acceso a los datos físicos que es independiente del tipo de tabla
que usemos. Y por último, la consulta se ejecuta en el subsistema correspondiente al tipo
de tabla que estamos accediendo.
ESTRUCTURA LÓGICA DE LA BASE DE DATOS
Una buena imagen mental de cómo funcionan los componentes de MySQL juntos lo
ayudará a comprender el servidor. La Figura de arriba muestra una vista lógica de la
arquitectura de MySQL.
La capa superior contiene los servicios que no son exclusivos de MySQL. Son servicios
que la mayoría de las herramientas de cliente / servidor basadas en red o servidores
necesitan: manejo de la conexión, autenticación, seguridad, etc.
La segunda capa es donde las cosas se ponen interesantes. Gran parte de los cerebros
de MySQL están aquí, incluido el código para el análisis de consultas, análisis,
optimización, almacenamiento en caché y todas las funciones incorporadas (por ejemplo,
fechas, horas, matemática y encriptación). Cualquier funcionalidad proporcionada en los
motores de almacenamiento vive en este nivel: procedimientos almacenados, activadores
y vistas, por ejemplo.
La tercera capa contiene los motores de almacenamiento. Son responsables de
almacenar y recuperar todos los datos almacenados "en" MySQL. Al igual que los
diversos sistemas de archivos disponibles para GNU / Linux, cada motor de
almacenamiento tiene sus propios beneficios y desventajas. El servidor se comunica con
ellos a través de la API del motor de almacenamiento. Esta interfaz oculta las diferencias
entre los motores de almacenamiento y los hace ampliamente transparentes en la capa
de consulta. La API contiene un par de docenas de funciones de bajo nivel que realizan
operaciones tales como "comenzar una transacción" o "buscar la fila que tiene esta clave
primaria". Los motores de almacenamiento no analizan SQL1 ni se comunican entre sí;
simplemente responden a las solicitudes del servidor.
LISTENER DE LA BASE DE DATOS (COMANDOS EN MYSQL SHELL)
Para que se inicien los servicios de nuestra base de datos solo será necesario ejecutar la
siguiente línea de comando desde la consola (cmd).
Si por alguna razón tuviéramos que parar manualmente el servidor de MySQL también
podremos hacerlo con línea de comando de la siguiente manera.
Para que la tarea de inicio del servidor se realice sin nuestra intervención tendremos que
prefijar en el Servicio MYSQL la opción de Tipo de Inicio Automático. Como se muestra en
la siguiente imagen
ARCHIVOS DE CONFIGURACIÓN (MY.CONF O MY.INI)
Para que el sistema funcione correctamente, y sobre todo, que se adapte lo más posible a
sus necesidades se debe configurar. Para ello dispone de varios métodos. El primero de
estos métodos para poder configurar todas las opciones, es desde la línea de comandos.
Este método suele ser muy útil si está probando nuevas configuraciones, en definitiva,
para hacer pruebas. El principal problema que tiene es que los cambios realizados no
perduran demasiado tiempo, sólo son válidos durante la sesión actual.
El tercer método, que suele ser el más utilizado y el más común, está basado
completamente en la filosofía Unix/Linux, es decir, trabajar a través de un fichero
predeterminado de configuración. Este fichero, del que ya se ha hablado anteriormente,
es el fichero my.cnf o my.ini.
#comentario
[group]
Group es el nombre del programa o del grupo para el que se quieren especificar las
opciones. Después de esta línea, cualquier opción o valor de una variable se aplicará al
grupo definido, hasta que se llegue al final del fichero de configuración o hasta que se
encuentre otra línea de definición de variables de otro grupo.
option
option=value
set-variable = name=value
Para aclarar toda esta sintaxis y ofrecer al lector un ejemplo detallado de configuración, se
adjunta un fichero típico donde se definen las variables globales:
[client]
port=3306
socket=/tmp/mysql.sock
[mysqld]
port=3306
socket=/tmp/mysql.sock
set-variable=key_buffer_size=16M
set-variable = max_allowed_packet=1M
[mysqldump]
quick
Para evitar gran pérdida de tiempo reconfigurando el servidor en caso de errores, antes
de realizar cualquier cambio o modificación en los ficheros de configuración, realice una
copia de seguridad de todos los ficheros de configuración.
CONSOLA DE ADMINISTRACIÓN (WORKBENCH GRAFICO)
MySQL Workbench. Es un software creado por la empresa Sun Microsystems. Esta
herramienta permite modelar diagramas entidad-relación para bases de datos MySQL.
Puede utilizarse para diseñar el esquema de una base de datos nueva, documentar una
ya existente o realizar una migración compleja. La aplicación elabora una representación
visual de las tablas, vistas, procedimientos almacenados y claves foráneas de la base de
datos. Además, es capaz de sincronizar el modelo en desarrollo con la base de datos real,
ingeniería inversa para importar el esquema de una base de datos ya existente el cual
haya sido guardado o hecho una copia de seguridad.
MySQL Workbench también puede generar el script necesario para crear la base de datos
que se ha dibujado en el esquema; es compatible con los modelos de base de datos de
DBDesigner 4 y soporta las novedades incorporadas en MySQL 5.
Crear una Base de Datos (Hay que entrar primero en mysql: mysql -h host -u user -p)
Insertar un registro
Modificar registros
mysql> UPDATE tabla SET col1=2;
Borrar registros
Vistas
Se definen para facilitar y restringir el acceso a los datos de las tablas a usuarios
limitados.
La estructura es estática y se hace en tiempo de creación: los futuros campos / cambios
sobre las tablas no se reflejan en la vista.
Entonces si una vista tiene un SELECT * FROM tabla y después de definirla añadimos un
campo a la tabla original, no lo veremos en la vista.
Triggers
Ejemplo antes de insertar una venta verifico si el producto está disponible en stock, el
evento insert dispara el trigger verstock automáticamente.
Procedimientos Almacenados
1. CALL Graba_venta(1)
Las funciones están pensadas para devolver parámetros, las funciones pueden ser
llamadas dentro de sentencias SQL como select, insert, etc. Las funciones no pueden
devolver consultas SQL, solo sirven para realizar tareas donde necesitemos realizar algún
tratamiento de datos, calculo o conversiones.
Por ejemplo: