加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql慢查询使用及参数详解

发布时间:2022-06-30 12:14:10 所属栏目:MySql教程 来源:互联网
导读:慢查询是mysql中一个非常重要的日志了,我们可以通过mysql慢查询日志来分析具体导致mysql查询慢的原因与sql语子,下面就和小编来简单的学习一下. 慢查询为系统中查询时间超过long_query_time的值,分析慢查询是优化SQL的基础,默认清下Mysql慢查询为关闭状态,
  慢查询是mysql中一个非常重要的日志了,我们可以通过mysql慢查询日志来分析具体导致mysql查询慢的原因与sql语子,下面就和小编来简单的学习一下.
 
  慢查询为系统中查询时间超过long_query_time的值,分析慢查询是优化SQL的基础,默认清下Mysql慢查询为关闭状态,可以通过:
 
  show variables where Variable_name = 'log_slow_queries';
 
  来查看是否开启,如果为OFF则需要修改mysql配置文件,在mysqld下面增加以下参数.
 
  #慢查询日志地址,需要mysql运行帐号对该目录有写权限
  log-slow-queries="/log/slow.log"
  #当query语句大于2s时记录慢查询日志
  long_query_time=2
  #没有使用索引的query也计入慢查询日志(可根据情况增加)
  log-queries-not-using-indexes
  
  mysql运行状态和变量查看
 
  通过查看mysql的status和variables来优化mysql
 
  1、慢查询配置,未打开的情况下建议打开,可发现系统中的慢查询语句以及慢查询的条数.
  mysql> show variables like '%slow%'
  +---------------------+-----------------------------+
  | Variable_name       | Value                       |
  +---------------------+-----------------------------+
  | log_slow_queries    | ON                          |
  | slow_launch_time    | 2                           |
  | slow_query_log      | ON                          |
  | slow_query_log_file | /alidata/log/mysql/slow.log |
  +---------------------+-----------------------------+
  4 rows in set (0.00 sec) --phpfensi.com
  mysql> show global status like '%slow%';
  +---------------------+-------+
  | Variable_name       | Value |
  +---------------------+-------+
  | Slow_launch_threads | 4     |
  | Slow_queries        | 3     |
  +---------------------+-------+
  2 rows in set (0.00 sec)
  2、连接数查看,max_connections为允许的最大连接数,Max_used_connections 系统中出现过的最大连接数,据说理想的设置是.
 
  Max_used_connections / max_connections * 100% ≈ 85%
  mysql> show variables like '%connections%';
  +----------------------+-------+
  | Variable_name        | Value |
  +----------------------+-------+
  | max_connections      | 2000  |
  | max_user_connections | 0     |
  +----------------------+-------+
  2 rows in set (0.00 sec)
  mysql> show global status like '%connections%';
  +----------------------+-------+
  | Variable_name        | Value |
  +----------------------+-------+
  | Connections          | 35049 |
  | Max_used_connections | 12    |
  +----------------------+-------+
  2 rows in set (0.00 sec)

  说明:
 
  queries total:总查询次数 unique:去重后的sql数量
 
  sorted by:输出报表的内容排序
 
  最重大的慢sql统计信息,包括 平均执行时间,等待锁时间,结果行的总数,扫描的行总数.
 
  Count,sql的执行次数及占总的slow log数量的百分比.
 
  Time,执行时间,包括总时间,平均时间,最小,最大时间,时间占到总慢sql时间的百分比.
 
  95% of Time,去除最快和最慢的sql, 覆盖率占95%的sql的执行时间.
 
  Lock Time,等待锁的时间.
 
  95% of Lock,95%的慢sql等待锁时间.
 
  Rows sent,结果行统计数量,包括平均,最小,最大数量.
 
  Rows examined,扫描的行数量.
 
  Database,属于哪个数据库
 
  Users,哪个用户,IP,占到所有用户执行的sql百分比
 
  Query abstract,抽象后的sql语句
 
  Query sample,sql语句。
 
 

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读