mysql慢查询设置(5.7)
2016-09-29 10:30
316 查看
慢查询:
注意:long_query_time和min_examined_row_limit参数互斥!!!
查看:
1, 登录mysql,show variables like '%query%'; 查看slow_query_log(或者5.1.29之前版本log-slow-queries) ,off为关闭。
MySQL 5.6.5版本开始新增了一个参数log_throttle_queries_not_using_indexes(该参数可以在控制慢日志大小的情况下进行非索引语句的查询,统计),用来表示每分钟允许记录到slow log的且未使用索引的SQL语句次数。
2,slow_query_log_file 慢查询文件位置;long_query_time :慢查询时间
设置与测试:
1,mysql --help | grep my.cnf 查看配置文件位置。
2,
[mysqld]
slow_query_log = on #开启慢查询日志(或设置1)
slow_query_log_file = filename #指定日志文件保存路径,不指定的话默认在数据库文件目录下,名为hostname-slow.log
long_query_time = 2 #指定达到多少秒才算慢查询
log_queries_not_using_indexes=on #记录没有使用索引的查询语句。!可能导致日志文件激增,谨慎使用。配合log_throttle_queries_not_using_indexes 使用。
log_throttle_queries_not_using_indexes #表示每分钟允许记录到slow log的且未使用索引的sql语句次数。配合long_queries_not_using_indexes开启使用。
min_examined_row_limit = 1000 #查询检查返回少于该参数指定行的SQL不被记录到慢查询日志.需要开启log_queries_not_using_indexes=on 。注意:1查询结果数量是<不会被记录,=会被记录。2,这个参数开启后,long_query_time 参数失效 。
log_slow_admin_statements #记录ALTER TABLE等语句引发的慢查询
<
4000
p>log_slow_slave_statements #记录从服务器产生的慢查询
min_examined_row_limit=Num of Rows 类似于SELECT ... FROM TBL LIMIT N这样的全表扫描的查询,如果--log_queries_not_using_indexes被开启的话,因为用不到索引将要报告为慢查询,可以在配置文件中使用min_examined_row_limit=Num of Rows来设置,如果要检查的行数大于等于这个量的查询,才会被报告为慢查询。
重启MySQL服务使配置生效
service mysqld restart
登陆数据库查询下环境
show variables like '%query%';
执行一个慢查询语句
select sleep(3);
查看文件,看日志是否生成。
参考URL:
1,http://san-yun.iteye.com/blog/2110320
2,http://www.linuxidc.com/Linux/2016-04/130345.htm
注意:long_query_time和min_examined_row_limit参数互斥!!!
查看:
1, 登录mysql,show variables like '%query%'; 查看slow_query_log(或者5.1.29之前版本log-slow-queries) ,off为关闭。
如已开启,show status like "%slow_queries%"; 显示日志中已经有的慢查询记录数。
MySQL 5.6.5版本开始新增了一个参数log_throttle_queries_not_using_indexes(该参数可以在控制慢日志大小的情况下进行非索引语句的查询,统计),用来表示每分钟允许记录到slow log的且未使用索引的SQL语句次数。
2,slow_query_log_file 慢查询文件位置;long_query_time :慢查询时间
设置与测试:
1,mysql --help | grep my.cnf 查看配置文件位置。
2,
[mysqld]
slow_query_log = on #开启慢查询日志(或设置1)
slow_query_log_file = filename #指定日志文件保存路径,不指定的话默认在数据库文件目录下,名为hostname-slow.log
long_query_time = 2 #指定达到多少秒才算慢查询
log_queries_not_using_indexes=on #记录没有使用索引的查询语句。!可能导致日志文件激增,谨慎使用。配合log_throttle_queries_not_using_indexes 使用。
log_throttle_queries_not_using_indexes #表示每分钟允许记录到slow log的且未使用索引的sql语句次数。配合long_queries_not_using_indexes开启使用。
min_examined_row_limit = 1000 #查询检查返回少于该参数指定行的SQL不被记录到慢查询日志.需要开启log_queries_not_using_indexes=on 。注意:1查询结果数量是<不会被记录,=会被记录。2,这个参数开启后,long_query_time 参数失效 。
log_slow_admin_statements #记录ALTER TABLE等语句引发的慢查询
<
4000
p>log_slow_slave_statements #记录从服务器产生的慢查询
min_examined_row_limit=Num of Rows 类似于SELECT ... FROM TBL LIMIT N这样的全表扫描的查询,如果--log_queries_not_using_indexes被开启的话,因为用不到索引将要报告为慢查询,可以在配置文件中使用min_examined_row_limit=Num of Rows来设置,如果要检查的行数大于等于这个量的查询,才会被报告为慢查询。
重启MySQL服务使配置生效
service mysqld restart
登陆数据库查询下环境
show variables like '%query%';
执行一个慢查询语句
select sleep(3);
查看文件,看日志是否生成。
参考URL:
1,http://san-yun.iteye.com/blog/2110320
2,http://www.linuxidc.com/Linux/2016-04/130345.htm
相关文章推荐
- MySQL 5.7 sql_mode设置 分组查询报错
- mysql 设置查询缓存
- mysql默认编码设置成gbk,解决dos下查询中文乱码的问题!
- mysql5.6.10关于慢查询的设置slow-query-log
- MySQL 性能:使用 MySQL 5.7 实现每秒 50 万查询
- 深入mysql慢查询设置的详解
- MySQL 性能:使用 MySQL 5.7 实现每秒 50 万查询
- MYSQL中如何查询设置多大,剩余空间是多少
- 深入mysql慢查询设置的详解
- 深入mysql慢查询设置的详解
- 深入mysql慢查询设置的详解
- mysql查询语句的大小写敏感设置
- mysql慢查询设置
- MySql 慢查询设置 和 查看
- 深入mysql慢查询设置的详解
- MYSQL已经生效的设置和状态查询命令
- MySQL 设置数据按条件查询下的序号
- 动态查询设置mysql慢查询
- mysql5.6.10关于慢查询的设置slow-query-log
- mysql字符集查询与设置详解