Variables estado MySQL

Para realizar un tuning de MySQL, antes hay que familiarizarse con un par de conceptos, MySQL tiene VARIABLES y ESTADOS:

  • Una variable tiene asociado un valor que puede ser fijado en el fichero my.cnf (my.ini en Windows) o símplemente se ha fijado uno por defecto de forma implícita, aunque también es posible modificar algunas variables en tiempo de ejecución (atención que no queda reflejado el cambio en los ficheros de configuración). Según la versión de que estemos usando podemos tener más de 300 (como ocurre con la versión 5.5). Es posible conocer el valor de todas las variables con:

Source   
mysql> SHOW VARIABLES;

O el valor de una concreta con:

Source   
mysql> SHOW VARIABLES LIKE 'version';
+---------------+-----------------------+
| Variable_name | Value |
+---------------+-----------------------+
| version | 5.5.18 |
+---------------+-----------------------+
1 row IN SET (0.00 sec)
Más información sobre la sintaxis en: http://dev.mysql.com/doc/refman/5.5/en/show-variables.html
  • Un estado es por ejemplo el número el número de segundos que el servidor está arrancado, el número de estados también es dependiente de la versión más de 300 para la vesión 5.5. El acceso a los estados se realiza de forma similar a las variables:
Source   
mysql> SHOW STATUS LIKE 'Uptime';
+---------------+---------+
| Variable_name | Value |
+---------------+---------+
| Uptime | 1529023 |
+---------------+---------+
1 row IN SET (0.00 sec)

Más información sobre la sintaxis en: http://dev.mysql.com/doc/refman/5.5/en/show-status.html

Documentación de estados en: http://dev.mysql.com/doc/refman/5.5/en/server-status-variables.html

Hay que tener en cuenta que tanto las variables como los estados pueden ser de ámbito global o de sesión, se puede consultar un estado o una variable a nivel global con:

Source   
mysql> SHOW global VARIABLES;
mysql> SHOW global STATUS;

Es muy recomendable una lectura de todos los estados, aunque sea rápida, y de todas las variables. Se puede encontrar relaciones muy interesantes entre las varaibles y los estados, para por ejemplo ver si tenemos bien dimensionado un buffer.

Esto será en otra entrada…

3 thoughts on “Variables estado MySQL

  1. Pingback: MySQL, tuning de parámetros para cualquier motor | Administrando sistemas

  2. Pingback: MySQL, tuning de parámetros para el motor INNODB | Administrando sistemas

  3. Respondiendo a la pregunta de un lector:

    ¿Que variable de entorno caracteriza un problema de memoria en el servidor mysql? ¿read_buffer_size, key_buffer_size o thread_cache_size?

    Entiendo que estás trabajando con tablas MyISAM, en este caso las variables de sistema:

    key_buffer_size, es el buffer usado por los bloques de índices y es compartido por todos los threads.
    read_buffer_size, es un buffer usado por cada thread en las lecturas de tablas secuenciales, por defecto 128K.
    thread_cache_size, el tamaño de caché para threads. Si fijamos 10 por ejemplo significa que tendremos 10 threads esperando un cliente, si se usan las 10 se crearán nuevos threads a demanda (con su correspondiente coste para el SO).

    Podemos sacar algunas conclusiones:
    1-Determinar si el thread_cache_size es suficientemente grande según la fórmula que indica los aciertos (según las variables de estado):
    hits=1-Threads_created/Connections

    2-Si tenemos un número de hits cercano al 100% podemos determinar que:
    memoria necesaria = read_buffer_size*thread_cache_size

Deja un comentario