网站瓶颈分析—MYSQL性能分析,网站瓶颈mysql性能

一、关于慢查询设置和分析

查找慢查询参数

mysql> show variables like 'long%';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 10.000000 |
+-----------------+----------+

mysql> show variables like 'slow%';
+---------------------+--------------------------------+
| Variable_name       | Value                          |
+---------------------+--------------------------------+
| slow_launch_time    | 2                              |
| slow_query_log      | OFF                            |
| slow_query_log_file | /var/lib/mysql/ubuntu-slow.log |
+---------------------+--------------------------------+

mysql> show variables like '%queries%';
+-------------------------------+-------+
| Variable_name                 | Value |
+-------------------------------+-------+
| log_queries_not_using_indexes | OFF   |
| log_slow_queries              | ON    |
+-------------------------------+-------+

设置慢查询参数(作者建议设置为1s)

mysql>  set global long_query_time=1;
mysql> set global slow_query_log='ON';

 

有些朋友除了设置以上的还会将查询中未带索引的语句也设置为on(即log_queries_not_using_indexes),大家可以根据当前的需求来确定是否需要增加。

这样大家就可以根据相应的日志去进行优化了,当然以上这块还是主要针对mysql语句进行优化

 

二、show processlist、show full processlist查看和分析

 show processlist:主要有以下几列

+----------+------+-----------+------+---------+------+-------+------------------+
| Id       | User | Host      | db   | Command | Time | State | Info             |
+----------+------+-----------+------+---------+------+-------+------------------+

 

除了一中进行一个日志的优化外,当然show
processlist也是一个方式,如果mysql进程一直处于一个较高的负载的时候,show
processlist也是一个不错的选择,详细的参数简介我就不介绍了,相信网上还是有很多的资料的

 

一、关于慢查询设置和分析 查找慢查询参数 mysql show variables like ‘
long% ‘ ; +—————–…

使用 explain 分析索引

  1. id
    id 是 SQL 执行的顺序,sql 是从里向外按照 id 的大小执行的。
    当使用子查询的时候,可以看到 SQL 会拆分成多个执行。

explain select * from mongodb_diagnose_task 
where id = (select id from mongodb_diagnose_conf where time_range = 3 );

图片 1

explain.png

  1. select_type:select 类型
select 类型 含义
simple 不使用联合查询或子查询
primary 最外层的select
derived from 子句的子查询
union union 中的第二个或后面的 select 语句
union result union 的结果
dependent union union 中的第二个或后面的 select 语句
subquery 子查询中第一个 select
dependent subquery 子查询中的第一个 select,取决于外面的查询
  1. table
    有时候不是真实的表名字

  2. type,连接操作类型
    这列很重要,显示了连接使用了哪种类型,有无使用索引。在各种类型的关联关系中,效率最高的是
    System, 然后依次是const / eq_ref / ref /range/ index
    /all。一般而言,得宝恒查询至少达到 range 级别,最好能 ref
    级别,否则可能会出现性能问题。

  • system,表只有一行,system表
  • const
  • eq_ref
  • ref, 使用了不是唯一或主键的键或者是这些类型的部分是发生。
  • range,使用索引返回一个范围内的行。比如使用 >或 <
  • index。
  • all,全表扫描。
  1. possible_ca88会员登录 ,key, Mysql 在搜索数据记录是可以选用的各个索引名
  2. key,Mysql 实际选用的索引
  3. www68399.com皇家赌场 ,ref,显示使用哪个列或常数与key一起从表中选择行
  4. rows,Mysql 认为它在找到正确结果之前必须扫描的记录数。
  5. extra ,附加信息。Using filesort,表明Mysql
    需要进行额外的步骤来发现如何对返回的行排序。它根据连接类型以及存储排列键值和匹配条件的全部行的行指针来;Using
    temporary,Mysql
    需要创建一个临时表来存储结果。一般看到这两个信息就表明需要优化了。

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章