La Red de Conocimientos Pedagógicos - Currículum vitae - ¿Qué es MySQL?

¿Qué es MySQL?

MySQL es un sistema de gestión de bases de datos relacionales (RDBMS) de código abierto que utiliza el lenguaje de gestión de bases de datos más utilizado: el lenguaje de consulta estructurado (SQL) para la gestión de bases de datos.

MySQL es de código abierto y cualquier persona puede descargarlo bajo la Licencia Pública General y modificarlo para adaptarlo a sus necesidades personales.

MySQL ha llamado mucho la atención por su velocidad, fiabilidad y adaptabilidad. La mayoría de la gente piensa que MySQL es la mejor opción para gestionar contenido sin procesamiento de transacciones.

Tutorial recomendado: vídeo tutorial introductorio de MySQL

Introducción a MySQL

MySQL es un sistema de gestión de bases de datos relacionales (RDBMS) de código abierto. El sistema de base de datos MySQL utiliza el lenguaje de gestión de bases de datos más utilizado: el lenguaje de consulta estructurado (SQL) para la gestión de bases de datos.

Debido a que MySQL es de código abierto, cualquiera puede descargarlo bajo la Licencia Pública General y modificarlo para adaptarlo a sus necesidades personales. MySQL ha atraído mucha atención por su velocidad, confiabilidad y adaptabilidad. La mayoría de la gente piensa que MySQL es la mejor opción para gestionar contenido sin procesamiento de transacciones.

El origen del nombre MySQL no está muy claro. Una afirmación influyente es que durante más de 10 años, las guías básicas y una gran cantidad de bibliotecas y herramientas han tenido el prefijo "my" y, en cualquier caso, la hija de Monty Widenius, uno de los fundadores de MySQL AB, también lo fue. llamado my. Cuál de los dos le dio el nombre MySQL sigue siendo un misterio, incluidos los desarrolladores.

El nombre del logotipo del delfín de MySQL es "sakila", que fue seleccionado por el fundador de MySQL AB entre una gran cantidad de nombres recomendados por los usuarios en el concurso "Dolphin Naming". El nombre ganador fue proporcionado por Ambrose Twebaze, un desarrollador de software de código abierto de Suazilandia, África. Según Ambrose, Sakila proviene de un dialecto suazi llamado SiSwati, que también es el nombre de una ciudad en Arusha, Tanzania, cerca de Uganda, la ciudad natal de Ambrose.

MySQL, aunque su función puede no ser muy poderosa, pero debido a su código abierto y su amplia difusión, mucha gente conoce esta base de datos. Su historia también es legendaria.

Optimización de la base de datos

Seleccione InnoDB como motor de almacenamiento.

Las bases de datos de productos grandes requieren alta confiabilidad y alta concurrencia. InnoDB, como motor de almacenamiento MySQL predeterminado, es una mejor opción que MyISAM.

Optimizar la estructura de la base de datos

Organizar el esquema, las tablas y los campos de la base de datos para reducir la sobrecarga de E/S. Guarde los elementos relacionados juntos y planifique con anticipación la cantidad de datos. crece, el rendimiento también puede mantenerse en un alto nivel.

La tabla de datos debe diseñarse para minimizar el espacio que ocupa y la clave principal de la tabla debe ser lo más corta posible. Para las tablas InnoDB, la columna donde se encuentra la clave primaria se puede copiar en cada entrada del índice secundario, por lo que si hay muchos índices secundarios, una clave primaria corta puede ahorrar mucho espacio.

Cree solo los índices necesarios para mejorar el rendimiento de las consultas. Los índices facilitan la recuperación pero aumentan el tiempo de ejecución de las operaciones de inserción y actualización.

Cambiar las características de almacenamiento en búfer de InnoDB

InnoDB proporciona una configuración de almacenamiento en búfer de cambios, que puede reducir la E/S del disco necesaria para mantener índices secundarios. Las bases de datos grandes pueden experimentar operaciones de tablas intensas y E/S intensas para garantizar que los índices secundarios permanezcan actualizados. Cuando la página relevante no está en el grupo de búfer, el búfer de cambios de InnoDB cambiará el caché a una entrada de índice secundaria, evitando así operaciones de E/S que consumen mucho tiempo causadas por no poder leer la página desde el disco inmediatamente. Cuando las páginas se cargan en el grupo de búfer, los cambios almacenados en el búfer se fusionan y las páginas actualizadas se descargan posteriormente en el disco. Hacerlo puede mejorar el rendimiento y es aplicable a MySQL 5.5 y superiores.

Compresión de páginas InnoDB

InnoDB admite la compresión de tablas a nivel de página.

Al escribir páginas de datos, se utilizará un algoritmo de compresión específico para comprimirlas. Los datos comprimidos se escriben en el disco y su mecanismo de perforación libera bloques vacíos al final de la página. Si la compresión falla, los datos se escribirán sin cambios. Tanto las tablas como los índices se comprimirán, ya que los índices suelen constituir una gran parte del tamaño total de la base de datos. La compresión puede ahorrar significativamente memoria, E/S o tiempo de procesamiento, mejorando así el rendimiento y la escalabilidad. También reduce la cantidad de datos transferidos entre la memoria y el disco. MySQL5.1 y versiones posteriores admiten esta función.

Tenga en cuenta que la compresión de páginas no admite tablas en espacios de tabla. * * * Disfrutar del espacio de mesa incluye el espacio de mesa del sistema, el espacio de mesa temporal y el espacio de mesa normal.

Usar la importación masiva de datos

Usar una fuente de datos ordenada en la clave principal para importar datos masivos puede acelerar el proceso de inserción de datos. De lo contrario, es posible que necesite insertar filas entre otras filas para mantener el orden, lo que provocará una alta E/S del disco, lo que afectará el rendimiento y aumentará las divisiones de páginas. También es beneficioso desactivar el modo de confirmación automática, ya que realiza un vaciado de registros en el disco en cada inserción. Cambiar temporalmente las comprobaciones de clave única y clave externa durante las inserciones masivas también puede reducir significativamente la E/S del disco. Para tablas recién creadas, la mejor práctica es crear restricciones de clave externa/clave única después de la importación masiva.

Una vez que sus datos alcancen un tamaño estable, o una tabla en crecimiento agregue decenas o cientos de megabytes, debería considerar usar la instrucción OPTIMIZETABLE para reorganizar la tabla y compactar el espacio desperdiciado. Escanear la tabla reorganizada costará menos E/S.

Optimizar la E/S del disco InnoDB

Aumentar el tamaño del grupo de búfer de InnoDB permite acceder a las consultas desde el grupo de búfer en lugar de a través de la E/S del disco. Al ajustar la variable del sistema innodb_flush_method, el índice del búfer de descarga se puede ajustar para lograr niveles óptimos.

Asignación de memoria para MySQL

Antes de asignar suficiente memoria para MySQL, considere los requisitos de memoria de MySQL en diferentes áreas. Las áreas clave a considerar son: Conexiones simultáneas: las clasificaciones y las tablas temporales requieren mucha memoria para dar cabida a la gran cantidad de conexiones simultáneas. Al momento de escribir este artículo, de 16 GB a 32 GB de RAM es más que suficiente para una base de datos con más de 3000 conexiones simultáneas.

La fragmentación de la memoria puede consumir aproximadamente 10 o más bloques de memoria. Los cachés y buffers como innodb_buffer_pool_size, key_buffer_size y query_cache_size consumen aproximadamente el 80% de la memoria asignada.

Mantenimiento diario

Revise periódicamente los registros de consultas lentas y optimice el mecanismo de consulta para utilizar eficazmente la memoria caché y reducir la E/S del disco. Optimícelos para escanear una cantidad mínima de filas en lugar de escanear toda la tabla.

Otros registros que pueden ayudar al DBA a verificar y analizar el rendimiento incluyen registros de errores, registros de consultas generales, registros binarios y registros DDL (registros de metadatos).

Vacia periódicamente las cachés y los buffers para reducir la fragmentación. Utilice la instrucción OPTIMIZETABLE para reorganizar la tabla y compactar cualquier espacio potencialmente desperdiciado. [1]