Jobs en MySQL

Esta vez vamos a ver la forma de realizar una tarea programada dentro de MySQL (salvando las distancias, un job de Oracle).

Primero tenemos que asegurarnos de que tenemos el scheduler arrancado esto lo vemos con un:

Source   
mysql> SHOW processlist;
+----+------+-----------------+------------+---------+------+-------+------------------+
| Id | User | Host            | db         | Command | Time | State | Info             |
+----+------+-----------------+------------+---------+------+-------+------------------+
|  6 | root | localhost:49987 | assets_pru | Sleep   |  299 |       | NULL             |
|  8 | root | localhost       | assets_pru | Query   |    0 | NULL  | SHOW processlist |
+----+------+-----------------+------------+---------+------+-------+------------------+
2 rows IN SET (0.00 sec)

No está arrancado, para esto tenemos que modificar un parámetro de my.cnf en la seccion mysqld:

Continue reading

MySQL tuning variables, parámetros para el motor INNODB

Continuando con el tuning MySQL ahora vamos a tocar de forma específica el motor INNODB.

Esta entrada está relacianada con la «MySQL, tuning de parámetros para cualquier motor«, vamos a trabajar a partir de estados y según el resultado ver que variables podemos modificar para mejorar los resultados.

En la entrada «Variables y estados en MySQL» ya se trató el tema de las variables y estados del servidor.

La documentación de todos las variables la podemos encontrar en:
http://dev.mysql.com/doc/refman/5.5/en/dynamic-system-variables.html

Continue reading

MySQL tuning parámetros para cualquier motor

Muchas gente realiza instalaciones MySQL y no se preocupan de la parametrización. La parametrización es importantísima, una BD puede funcionar bien (de momento) con los parámetros por defecto, los problemas aparecen cuando la BD crece o aumenta su carga de trabajo.

En esta entrada trataremos los parámetros que pueden afectar al rendimiento de cualquier motor (los más usados son INNODB y MyISAM).

Las variables son usadas por el servidor para dimensionar estructuras de memoria cruciales para el buen rendimiento del motor de BD, los estados del servidor nos indicarán si las variables que hemos definido realmente están causando algún efecto positivo o por el contrario no sirven para absolutamente nada.

Continue reading

Pasar de un solo datafile InnoDB a uno por tabla (MYSQL)

Durante una instalación por defecto de MySQL, un error muy común es no modificar la configuración de como almacena los datos en motor InnoDB. Por defecto toda la información es almacenada en un solo datafile, que normalmente se llama:

Source   
ibdata1

Continue reading

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:

Continue reading

MySQL consultas lentas, activación log consultas lentas o sin índices

En un entorno de producción, es muy recomendable tener activado el log de consultas lentas, para irlo analizando de vez en cuando.

La activación se realiza en el fichero de parámetros usado (por ejemplo my.cnf), añadiendo dentro de la sección [mysqld]:

Source   
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 10
log-queries-not-using-indexes

Continue reading