Exploración de la arquitectura de MySQL

Completado

MySQL es una base de datos relacional basada en el estándar SQL. Los datos se almacenan en el servidor, en tablas formadas por columnas y filas. Los clientes pueden acceder a los datos del servidor a través de sitios web, aplicaciones o mediante un entorno de desarrollo integrado (IDE), como MySQL Workbench o dbForge. En algunos ejemplos de este módulo se usa MySQL Workbench.

Screenshot that shows the Graphical user interface Description automatically generated.

MySQL permite usar diferentes motores de almacenamiento. El motor de almacenamiento predeterminado es InnoDB, que es el único motor de almacenamiento que admite Azure Database for MySQL. Los archivos de datos, como bases de datos, tablas, registros y archivos de estado, se almacenan en el directorio de datos. Puede mostrar la ubicación de los archivos de datos ejecutando lo siguiente:

SELECT @@datadir;

Nota:

Azure Database for MySQL no proporciona acceso al sistema de archivos subyacente. Puede ver dónde se almacenan los archivos de datos, pero no tiene acceso a los archivos reales, excepto a través de la base de datos.

MySQL contiene parámetros globales en un archivo denominado my.cnf. En Azure Database for MySQL, la mayoría de los parámetros de configuración del servidor se pueden administrar en Azure Portal. Vaya al servidor de Azure Database for MySQL y seleccione Parámetros del servidor. Como alternativa, puede usar la CLI de Azure.

Caché de consultas

La caché de consulta era una característica de MySQL hasta la versión 5.1. En la versión 5.7 la caché de consulta cayó en desuso, y en la versión 8.1 se quitó. Este cambio se realizó para mejorar el rendimiento.

Protocolo de cliente/servidor

El protocolo de cliente/servidor de MySQL es medio dúplex, lo que significa que puede enviar datos o recibir datos, pero no ambas cosas. Si el cliente envía una consulta compleja, el servidor debe esperar hasta que se haya recibido la consulta completa.

Los clientes envían una consulta como un paquete de datos. El elemento max_allowed_packet define el tamaño máximo de una consulta, una cadena o un parámetro. En Azure Portal, vaya al servidor de Azure Database for MySQL, seleccione Parámetros del servidor y, en la búsqueda, escriba max_allowed_packet.

Si el servidor tiene un conjunto de registros grande por devolver, debe devolver el conjunto de registros completo antes de poder responder a nuevas consultas. Por lo tanto, es importante escribir consultas que filtren el conjunto de resultados antes de que el servidor las envíe, de modo que solo se devuelvan los registros necesarios.

El protocolo de cliente/servidor de MySQL admite conexiones de la Capa de sockets seguros (SSL) entre aplicaciones cliente y el servidor de bases de datos para ayudar a evitar ataques de tipo "Man in the middle". Para configurar MySQL Workbench para que requiera una conexión cifrada al servidor de Azure Database for MySQL:

  1. En el menú superior, seleccione Base de datos.
  2. Seleccione Administrar conexiones y edite una conexión existente o cree una nueva. Se muestra el cuadro de diálogo Administrar conexiones del servidor.
  3. En Conexión, seleccione la pestaña SSL.
  4. Junto a Usar SSL, seleccione Requerir.
  5. Junto a Archivo de entidad de certificación SSL, proporcione la ruta de acceso al archivo de la entidad de certificación.

En Azure Portal, vaya al servidor de Azure Database for MySQL y seleccione Seguridad de conexión en el menú de la izquierda. En Configuración de SSL, la opción Aplicar conexión SSL se puede establecer en ENABLED o DISABLED. También puede establecer la versión mínima de TLS.

El demonio de MySQL

El demonio de MySQL, también conocido como MySQL Server o mysqld, es un programa de servicio que administra el acceso a los demás componentes de MySQL, como el directorio de datos MySQL, mysqladmin y el optimizador de consultas. El programa de servicio mysqld se inicia con el script mysqld_safe. Este script se ejecuta en segundo plano siempre que se inicia o reinicia el servidor de Azure Database for MySQL.

Nota:

Puede detener la instancia de Azure Database for MySQL cuando no esté en uso y reiniciarla cuando sea necesario. Use Azure Portal, Azure Cloud Shell, MySQL Workbench o MySQL para Visual Studio para iniciar y detener el servidor.

El servicio mysqld se ejecuta continuamente mientras el servidor se esté ejecutando. Al detener el servidor de Azure Database for MySQL, no se puede acceder a ningún servicio de MySQL hasta que se reinicie el servidor.

Nota:

Azure Database for MySQL es un servicio y no proporciona acceso a archivos individuales, como el demonio de MySQL.

Tipos de datos

MySQL admite varias categorías de tipos de datos:

  • Numéricos: enteros (INT), enteros pequeños, decimales (DEC, FIXED), numéricos, flotantes, reales, de doble precisión (DOUBLE), BIT
  • Fecha y hora: fecha, hora, fecha y hora, marca de tiempo, año
  • Cadena: CHAR, VARCHAR, BINARY, VARBINARY, BLOB, TEXT, ENUM y SET.
  • Espacial: tipo de geometría
  • JSON: el tipo de datos JSON nativo se admite desde la versión 5.7.

Consulte la documentación sobre tipos de datos de MySQL para saber qué motores de almacenamiento admiten qué tipos de datos, sinónimos y comportamiento de actualización de determinados tipos de datos.