5 parámetros para optimizar MySQL en 2021

Hola a todos, hoy vamos a compartir con vosotros 5 parámetros para optimizar MySQL. En MySQL en todos los sistemas operativos, tiene un fichero de configuración. En este fichero de configuración se establecen los parámetros que se aplicarán en el arranque de MySQL o en su próximo reinicio. Es importante resaltar este punto ya que toda la configuración que se haga en este fichero, se aplicará en el próximo arranque del servicio, no de manera inmediata. Dicho esto, comencemos.

¿Dónde está el fichero de configuración?

En primer lugar deberemos saber dónde encontrar el fichero de configuración. Este fichero en Linux se suele encontrar en /etc/mysql/my.conf aunque dependerá de tu distribución, lo más común será encontrarlo en esta ubicación.

En entornos Windows el fichero puede llamarse my.ini o my.cnf. Puede estar ubicado en:

  • BASEDIR\my.ini
  • BASEDIR\my.cnf
  • %WINDIR%\my.ini
  • %WINDIR%\my.cnf

%WINDIR% hace referencia a la instalación de Windows (normalmente C:\Windows) y BASEDIR es el directorio de instalación. Normalmente en Program Files salvo que se haya cambiado su ubicación en el momento de la instalación.

Si tenéis problemas para localizarlo, podéis mirar en esta página: https://dev.mysql.com/doc/refman/8.0/en/option-files.html

Una vez ubicado, recomendamos encarecidamente hacer una copia del fichero actual por si hubiera que revertir cambios y que siga funcionando MySQL sin problema.

5 parámetros para optimizar MySQL

¿Cuáles son los 5 parámetros para optimizar MySQL?

Una vez localizado el fichero y hecho una copia de él. Podemos modificar los parámetros. Estos parámetros son recomendaciones generales pero no por eso pueden ser válidos para todos los entornos. Por eso, siempre probar estos parámetros en un entorno no productivo hasta que se compruebe su utilidad.

innodb_buffer_pool_size

Este parámetro es el que mantiene la base de datos cacheada. Cuanto más grande sea este parámetro, menos uso de disco requerirá la base de datos. Este valor «reserva» la cantidad que le indiquemos en memoria RAM para que sea utilizada por MySQL. Lo ideal, si tenemos base de datos pequeñas y suficiente RAM, es que ocupen la totalidad de las base de datos.

Por ejemplo, si en total tenemos en base de datos de MySQL 2 GB de datos, podríamos indicar el valor de innodb_buffer_pool_size en 3 o 4 GB.

Como esto no siempre es posible, deberemos usar un valor razonable. Por ejemplo podremos indicar entre 6 y 10 GB para este parámetro en bases de datos más grandes.

max_connections

Este parámetro define el número máximo de conexiones recurrentes que podemos tener a la vez en MySQL. Por eso es conveniente modificar este valor en entornos grandes donde se esperen cientos de conexiones concurrentes. Normalmente con el valor por defecto (depende de cada versión que usemos) suele ser suficiente para no tocar este parámetro. Pero si nos aparece el error «Too many connections», deberemos aumentar su valor. Si lo modificamos, deberemos usar un valor prudente acorde a nuestras conexiones, ya que si indicamos un valor muy alto, repercutirá en el rendimiento de la base de datos, al permitir muchas conexiones a la vez.

query_cache_size

Este parámetro es uno de los que más debate genera en la red y puede dar muchos problemas tanto si se pone muy poco, como si se indica un valor muy bajo. Por ella nuestra recomendación sería deshabilitarlo estableciendo su valor a 0. En este sentido, lo mejor es tunear las queries en vez de cambiar este parámetro. En este punto, podemos ayudarte a examinar las queries e intentar optimizarlas para que dejen de ser un problema. Consúltanos sin compromiso.

innodb_flush_method

Este valor controla la forma en la que se vacían los datos y logs desde memoria, a disco. Se suele mantener en O_DIRECT, para evitar el «double buffering». Este parámetro de double buffering suele rendir peor que O_DIRECT.

Esperamos que os haya gustado esta entrada. Si aún así quieres que revisemos tu entorno para ajustar correctamente tus queries y parámetros. Contacta sin compromiso. Somos expertos en base de datos MySQL, SQL Server, Oracle, etc.

No dudes en suscribirte a nuestra newsletter mensual para no perderte ninguna de nuestras publicaciones. Con un solo email al mes estarás informado y podrás darte de baja cuando quieras.

¿Aún no conoces Query Performance? Descubre cómo puede ayudarte en tu entorno Oracle. Más información en su página de LinkedIn.

Sígue a GPS en LinkedIn