2009-06-18 13 views
25

¿Cómo perfilo una base de datos MySQL? Quiero ver todo el SQL ejecutándose contra una base de datos.Cómo perfilar MySQL

Sé que usted puede hacer esto:

  • set profiling=1;
  • ejecutar la consulta lenta (por ejemplo SELECT * FROM messages WHERE fromaddress='xxx';
  • SHOW PROFILES;

Pero esto parece que sólo se aplican a la materia de funcionar en el comando línea, quiero ver los resultados de ejecutar un sitio web.

+1

Obviamente, nada le impide ejecutar esas consultas en un sitio web. Supongo que estás pidiendo un método que no implique modificaciones en el código de la aplicación. –

+0

["'SHOW PROFILES' está en desuso y se eliminará en una versión futura. Utilice el esquema de rendimiento en su lugar."] (Http://dev.mysql.com/doc/refman/5.7/en/show-profiles.html) – bishop

Respuesta

6

Quiere el query log - pero obviamente hacer esto en un servidor de producción pesada podría ser ... imprudente.

1

Puede simplemente analizar el registro de consultas en tiempo real. Si en Linux, puede utilizar tail-f para ver el registro en vivo

Además, puede probar algún software libre de estos chicos:

http://hackmysql.com/mysqlsla

0

MySqlAdministrator tener alguna utilidad en la acumulación características (incluidos los registros de ver), pero para los registros que tienen que ejecutarse en la misma máquina que la base de datos

3

que trabajó para mí en Ubuntu.

Encuentra y abre tu archivo de configuración de MySQL, generalmente /etc/mysql/my.cnf en Ubuntu. Busque la sección que dice “Inicio de sesión y la 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 nuevas versiones 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 elimine la variable log para activar el registro. Reiniciar MySQL con el siguiente comando:

sudo /etc/init.d/mysql restart 

Ahora estamos listos para iniciar la supervisión de las consultas ya que vienen en Abre un nuevo terminal y ejecute este comando para desplazarse por el archivo de registro, el ajuste de la ruta si es necesario..

tail -f /var/log/mysql/mysql.log 
Cuestiones relacionadas