MySQL记录全执行SQL语句
遇到性能问题时候,排查到数据库部分,一般都是看慢sql,但是有的时候慢sql也看不出什么东西,这个时候,如果可以有办法记录所有执行的sql,那排查起来可以更方便点。
开启日志查询功能
1
   | SHOW VARIABLES LIKE 'general%';
   | 
 
返回结果:
1 2 3 4 5 6 7
   | +------------------+----------------------------------------------+ | Variable_name    | Value                                        | +------------------+----------------------------------------------+ | general_log      | OFF                                          | | general_log_file | /data/mysql_data/izuf65tvx7it01x88bzbp4z.log | +------------------+----------------------------------------------+ 2 rows in set (0.00 sec)
   | 
 
可以看出,当前是关闭状态,开启即可:
1
   | set GLOBAL general_log='ON';
   | 
 
再查一下:
1
   | SHOW VARIABLES LIKE 'general%';
   | 
 
返回结果:
1 2 3 4 5 6 7
   | +------------------+----------------------------------------------+ | Variable_name    | Value                                        | +------------------+----------------------------------------------+ | general_log      | ON                                           | | general_log_file | /data/mysql_data/izuf65tvx7it01x88bzbp4z.log | +------------------+----------------------------------------------+ 2 rows in set (0.00 sec)
   | 
 
搞定,这下,调接口之后就会有完成的sql看了。
binlog
嗯,这个方式,怎么说呢,自己level太低,不是很看得懂里面记录的,不过binlog文件里记录的的确是全部的sql,最全。
binlog使用mysqlbinlog工具来查看。
查看binlog状态:
1
   | show variables like "%log_bin%";
   | 
 
返回结果:
1 2 3 4 5 6 7 8 9 10 11
   | +---------------------------------+----------------------------------+ | Variable_name                   | Value                            | +---------------------------------+----------------------------------+ | log_bin                         | ON                               | | log_bin_basename                | /data/mysql_data/mysql-bin       | | log_bin_index                   | /data/mysql_data/mysql-bin.index | | log_bin_trust_function_creators | ON                               | | log_bin_use_v1_row_events       | OFF                              | | sql_log_bin                     | ON                               | +---------------------------------+----------------------------------+ 6 rows in set (0.00 sec)
   | 
 
就能看见binlog状态以及保存路径了