Buscar..


Observaciones

La configuración se realiza en una de las 3 formas:

  • opciones de línea de comando
  • el archivo de configuración my.cnf
  • configurando variables desde dentro del servidor

Las opciones de la línea de comandos toman la forma mysqld --long-parameter-name=value --another-parameter . Los mismos parámetros se pueden colocar en el archivo de configuración my.conf . Algunos parámetros son configurables usando variables del sistema desde MySQL. Consulte la documentación oficial para obtener una lista completa de los parámetros.

Las variables pueden tener guión - o subrayado _ . Pueden existir espacios alrededor del = . Los números grandes pueden ser sufijados por K , M , G para kilo, mega y giga. Un ajuste por línea.

Indicadores: por lo general, ON y 1 son sinónimos, lo mismo para OFF y 0 . Algunas banderas no tienen nada tras ellas.

Al colocar la configuración en my.cnf , todas las configuraciones para el servidor deben estar en la sección [mysqld] , así que no agregue ciegamente la configuración al final del archivo. (Nota: para las herramientas que permiten que varias instancias de mysql compartan un my.cnf, los nombres de las secciones pueden ser diferentes).

Rendimiento InnoDB

Hay cientos de configuraciones que se pueden colocar en my.cnf. Para el usuario 'lite' de MySQL, no importarán tanto.

Una vez que su base de datos se convierte en no trivial, es recomendable establecer los siguientes parámetros:

innodb_buffer_pool_size

Esto debe configurarse en aproximadamente el 70% de la RAM disponible (si tiene al menos 4 GB de RAM; un porcentaje menor si tiene una máquina virtual pequeña o una máquina antigua). La configuración controla la cantidad de caché utilizada por el MOTOR InnoDB. Por lo tanto, es muy importante para el rendimiento de InnoDB.

Parámetro para permitir la inserción de grandes datos.

Si necesita almacenar imágenes o videos en la columna, debemos cambiar el valor según lo requiera su aplicación

max_allowed_packet = 10M

M es Mb, G en Gb, K en Kb

Aumente el límite de cadena para group_concat

group_concat se utiliza para concatenar valores no nulos en un group . La longitud máxima de la cadena resultante se puede establecer utilizando la opción group_concat_max_len :

SET [GLOBAL | SESSION] group_concat_max_len = val;

La configuración de la variable GLOBAL garantizará un cambio permanente, mientras que la configuración de la variable SESSION establecerá el valor para la sesión actual.

Configuración mínima de InnoDB

Esta es una configuración mínima para los servidores MySQL que usan tablas InnoDB. Usando InnoDB, no se requiere el caché de consulta. Recupere espacio en el disco cuando una tabla o base de datos se DROP ed. Si está usando SSD, el lavado es una operación redundante (los SDD no son secuenciales).

default_storage_engine = InnoDB
query_cache_type = 0
innodb_file_per_table = 1
innodb_flush_neighbors = 0

Concurrencia

Asegúrese de que podamos crear más de los 4 hilos predeterminados configurando innodb_thread_concurrency en infinito (0); Esto permite que InnoDB decida basándose en la ejecución óptima.

innodb_thread_concurrency = 0
innodb_read_io_threads = 64
innodb_write_io_threads = 64

Utilización del disco duro

Configure la capacidad (carga normal) y la capacidad_max (máximo absoluto) de IOPS para MySQL. El valor predeterminado de 200 está bien para las unidades de disco duro, pero en estos días, con SSD con capacidad para miles de IOPS, es probable que desee ajustar este número. Hay muchas pruebas que puede ejecutar para determinar IOPS. Los valores anteriores deberían ser casi ese límite si está ejecutando un servidor MySQL dedicado . Si está ejecutando otros servicios en la misma máquina, debe distribuirlos según corresponda.

innodb_io_capacity = 2500
innodb_io_capacity_max = 3000

Utilización de RAM

Establecer la memoria RAM disponible para MySQL. Si bien la regla general es del 70-80%, esto realmente depende de si su instancia está dedicada o no a MySQL y de cuánta RAM está disponible. No desperdicies RAM (es decir, recursos) si tienes mucho disponible.

innodb_buffer_pool_size = 10G

Cifrado seguro de MySQL

El cifrado predeterminado aes-128-ecb utiliza el aes-128-ecb electrónico (ECB), que es inseguro y nunca debe usarse. En su lugar, agregue lo siguiente a su archivo de configuración:

block_encryption_mode = aes-256-cbc


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow