Cómo crear un perfil MySQL


Cómo perfilo una base de datos MySQL. Quiero ver todo el SQL que se ejecuta en una base de datos.

Sé que puedes hacer esto:

  • set profiling=1;
  • Ejecute su consulta lenta (eg SELECT * FROM messages WHERE fromaddress='xxx';
  • SHOW PROFILES;

Pero esto parece aplicarse solo a cosas que se ejecutan en la línea de comandos, quiero ver los resultados de ejecutar un sitio web.

Author: shgnInc, 2009-06-18

5 answers

Desea el registro de consulta - pero obviamente hacer esto en un servidor de producción pesada podría ser... imprudente.

 6
Author: Tom Ritter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-18 14:26:53

Eso funcionó para mí en Ubuntu.

Busque y abra su archivo de configuración de MySQL, generalmente /etc/mysql/my.cnf en Ubuntu. Busque la sección que dice "Registro y replicación"

# * Logging and Replication
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.

log = /var/log/mysql/mysql.log

O en versiones más recientes de mysql, comente estas líneas de códigos

general_log_file        = /var/log/mysql/mysql.log
general_log             = 1
log_error                = /var/log/mysql/error.log

Simplemente descomente la variable log para activar el registro. Reinicie MySQL con este comando:

sudo /etc/init.d/mysql restart

Ahora estamos listos para comenzar a monitorear las consultas a medida que ingresan. Abra una nueva terminal y ejecute este comando para desplazarse el archivo de registro, ajustando la ruta si es necesario.

tail -f /var/log/mysql/mysql.log
 3
Author: Matija,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-22 06:23:13

Simplemente puede analizar el registro de consulta en tiempo real. Si está en Linux, puede usar tail-f para ver el registro en vivo

Además, puedes probar algún software libre de estos tipos:

Http://hackmysql.com/mysqlsla

 1
Author: Bryan Migliorisi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-18 14:25:18

Hay un producto comercial

Http://www.webyog.com/en/

 1
Author: Haim Evgi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-22 06:22:04

MySqlAdministrator tiene algunas características útiles de compilación (incluida la vista de registros), pero para los registros debe ejecutarse en la misma máquina que database

 0
Author: buddy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-18 14:29:51