MySQL puede crear verdaderos problemas en un servidor que tenga usuarios que abusen de él con ciertas consultas.

El siguiente artículo te mostrará como identificar con éxito aquellas consultas que estan generando problemas en tu servidor.

Por si el inglés no es tu fuerte, a continuación te ofrezco el documento traducido al castellano.

MySQL puede guardar un registro de aquellas consultas que tardan más de X segundos, pero esta opción no se encuentra activada por defecto.

Así es como podrás activarla (las instrucciones son para Linux, aunque es fácilmente exportable):

  • Accede a tu servidor como “root”
  • Abre el fichero “my.cnf” con tu editor favorito. Ejemplo:

pico /etc/my.cnf

  • Busca la sección [mysqld] y añade dentro las siguientes líneas:

    log-slow-queries = /var/log/mysql-slow.log
    long_query_time = 3

    Esto es sólo un ejemplo. Puedes utilizar el nombre del archivo que quieras y establecer “long_query_time” a cualquier valor deseado. Es este ejemplo, se guardará un registro, en el fichero /var/log/mysql-slow.log, de aquellas consultas que tarden más de 3 segundos.

  • Graba las modificaciones

En pico: CTRL+X y YES

  • Ahora tendrás que crear el fichero de registro:

    touch /var/log/mysql-slow.log

  • Ahora cambiamos el propietario del archivo para que mysql pueda escribir en él.

    chown mysql.root /var/log/mysql-slow.log

  • Reiniciamos mysql

    service mysql restart

  • Espera unos minutos y luego examina el fichero de registro
    Unos ejemplos de como hacerlo:

     

    cat /var/log/mysql-slow.log
    tail /var/log/mysql-slow.log
    tail -50 /var/log/mysql-slow.log

Una vez que hayas identificado la consulta abusiva, tendrás que mejorarla o eliminarla.
De nuevo, contrasta los resultados de la carga de tu servidor con el fichero de registro.

Después de que hayas resuelto todos los problemas, comenta las líneas que añadíste al fichero “my.cnf”, ya que si las dejas activadas pueden ralentizar un poco el servidor. Debería parecerse a lo siguiente:

#log-slow-queries = /var/log/mysql-slow.log
#long_query_time = 3

Y no te olvides de reiniciar MySQL después de esto.

service mysql restart

Espero que te sirva de ayuda !

También, te sugiero que leas:

Vota por este artículo

MaloRegularBuenoMuy buenoExcelente! (Aún sin votaciones. ¡Sé el primero!)
Cargando ... Cargando ...

Posts relacionados
  • Conectar OpenOffice.org contra MySQL en Ubuntu
  • SQLDesigner, diseña y exporta bases de datos online
  • UbuntuIes: Distribución Linux basada en Ubuntu para pendrive
  • Opera 10, versión final disponible desde hoy
  • Deja una Respuesta