拓展解析:日志的输出位置一般有三种方式:file(文件),table(表),none(不保存);其中前两个输出位置可以同时定义,none表示是开启日志功能但是记录日志信息。file就是通过general_log_file |/mydata/data/stu18.log 等方式定义的,而输出位置定义为表时查看日志的内容方式为:
| mysql> use mysql; #在此数据库中 |
| Database changed |
| mysql> show tables; |
| +---------------------------+ | Tables_in_mysql | +---------------------------+ | columns_priv | | db | | event | | func | | general_log | #这个就是查询日志的表输出位置 | help_category | | help_keyword | | help_relation | | help_topic ……………… | +---------------------------+ |
慢查询日志:
慢查询日志是用来记录执行时间超过指定时间的查询语句。通过慢查询日志,可以查找出哪些查询语句的执行效率很低,以便进行优化。一般建议开启,它对服务器性能的影响微乎其微,但是可以记录mysql服务器上执行了很长时间的查询语句。可以帮助我们定位性能问题的。
查看慢查询日志的定义:
| mysql> SHOW GLOBAL VARIABLES LIKE '%log%'; | slow_query_log | OFF #定义慢查询日志的 | slow_query_log_file |/mydata/data/stu18-slow.log #输出方式为file(文件)时定义慢查询日志的位置 |
启动和设置慢查询日志:
1、通过配置文件my.cnf中的log-slow-queries选项可以开启慢查询日志;形式如下:
| [root@stu18 data]# vim /etc/my.cnf [mysqld] slow_query_log=1 log-slow-queries [= DIR/[filename] ] |
其中,DIR参数指定慢查询日志的存储路径;filename参数指定日志的文件名,生成日志文件的完成名称为filename-slow.log。如果不指定存储路径,慢查询日志默认存储到mysql数据库的数据文件下,如果不指定文件名,默认文件名为hostname-slow.log。
2、通过登录mysql服务器直接定义,方式如下:
首先要有全局权限;然后执行mysql>set global slow_query_log=1;
时间默认超过多少的称为慢查询日志?
一般都是通过long_query_time选项来设置这个时间值,时间以秒为单位,可以精确到微秒。如果查询时间超过了这个时间值(默认为10秒),这个查询语句将被记录到慢查询日志中。查看服务器默认时间值方式如下:
| mysql> SHOW GLOBAL VARIABLES LIKE 'long%'; |
| +-----------------+-----------+ | Variable_name | Value | +-----------------+-----------+ | long_query_time | 10.000000 | +-----------------+-----------+ 1 row in set (0.04 sec) |










