show profile

  1. 查看profiling设置
SHOW GLOBAL VARIABLES LIKE "profiling%"

mysql查看最新执行的sql 查看mysql执行sql记录_mysql查看最新执行的sql

  1. 设置profiling开启
SET GLOBAL profiling = ON

mysql查看最新执行的sql 查看mysql执行sql记录_sql_02

  1. 查看最近执行的sql
SHOW PROFILES

mysql查看最新执行的sql 查看mysql执行sql记录_mysql查看最新执行的sql_03

记住Query_ID,可以查看这条sql执行详情。

  1. 查看一条sql的详情
SHOW PROFILE cpu,block io for 34;

cpu和block io是参数,查看这两项参数的执行情况,下面是全部参数。

mysql查看最新执行的sql 查看mysql执行sql记录_sql_04

然后看一下执行的结果:

mysql查看最新执行的sql 查看mysql执行sql记录_全局查询_05

可以看到SQL执行的全部流程。

全局查询日志

  1. 查看全局查询日志的设置
SHOW GLOBAL VARIABLES LIKE "general_log%"

mysql查看最新执行的sql 查看mysql执行sql记录_mysql查看最新执行的sql_06

  1. 设置全局查询日志的参数
SET GLOBAL general_log = ON

mysql查看最新执行的sql 查看mysql执行sql记录_sql_07

下面是设置日志的保存位置,你还可以设置保存为数据表;

SET GLOBAL log_output = "TABLE"
SHOW GLOBAL VARIABLES LIKE "log_output%"

mysql查看最新执行的sql 查看mysql执行sql记录_sql_08

  1. 查询所有执行的SQL
    如果是文件的话就根据general_log_file参数打开文件查看。
    如果设置的是table的话,日志被保存在MySQL数据库默认的mysql数据库general_log表中。
select * from mysql.general_log

全局查询日志是排查问题的,一定不要在上线的项目中开启。