Mysql瓶颈分析方法

作者: 潘晓华Michael | 来源:发表于2019-06-11 10:53 被阅读1次
Mysql

数据库往往会成为应用的最终瓶颈,而Mysql是被使用得最多的开源关系型数据库。如何分析执行Mysql数据库语句的性能就非常重要。但是很多开发人员并没有相关的意识与能力,但其实掌握了一些简单的常用手段,就可以让我们自己分析出数据库语句的问题。曾经看到过有对数据库查询语句中出现7个Select的语句,当时完全被震惊到了,这根本就是往系统里注入了一个大雷呀,数据量一旦增多,数据库挂,应用挂,服务挂,客户挂,公司挂。。。。还是不做破了一个鸡蛋就想着毁了一个养鸡场的推断了。我们收集下常见的数据库的分析手段。

  1. 查看当前数据库执行命令
mysql> select count(*) from information_schema.processlist where COMMAND != 'Sleep';
mysql> select * from information_schema.processlist where COMMAND != 'Sleep' limit 5;
  1. 慢查询
    查看慢查询时间定义
mysql> show variables like "long%";
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 10 |
+-----------------+----------+
1 row in set (0.00 sec)

mysql> set long_query_time=1;
Query OK, 0 rows affected (0.00 sec)

开启“慢查询”记录功能

mysql> show variables like "slow%";
+---------------------+------------------------------------+
| Variable_name       | Value                              |
+---------------------+------------------------------------+
| slow_launch_time    | 2                                  |
| slow_query_log      | OFF                                |
| slow_query_log_file | /opt/mysql/data/localhost-slow.log |
+---------------------+------------------------------------+
3 rows in set (0.00 sec)

mysql> set global slow_query_log=ON;
Query OK, 0 rows affected (0.01 sec)

设置慢日志导出方式为Table或者File

mysql> show variables like "log_output";
+---------------------+------------------------------------+
| Variable_name       | Value                              |
+---------------------+------------------------------------+
| log_output         | FILE                                  |
+---------------------+------------------------------------+
3 rows in set (0.00 sec)

mysql> set global log_output=TABLE     
Query OK, 0 rows affected (0.01 sec)
  1. explain输出执行计划对sql进行分析
mysql> explain select uid from user where mo=132342342 limit 0,1;

出现以下结果就需要优化了:

  • 出现了Using temporary;
  • rows过多,或者几乎是全表的记录数;
  • key 是 (NULL);
  • possible_keys 出现过多(待选)索引。
  1. soar小米SQL分析工具
    SOAR(SQL Optimizer And Rewriter)是一个对SQL进行优化和改写的自动化工具。 由小米人工智能与云平台的数据库团队开发与维护。

相关文章

  • Mysql瓶颈分析方法

    数据库往往会成为应用的最终瓶颈,而Mysql是被使用得最多的开源关系型数据库。如何分析执行Mysql数据库语句的性...

  • 索引性能分析

    MySql Query Optimizer MySQL常见瓶颈

  • MySQL调优三部曲(一)慢查询

    开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,可以更好的优化MySQL的性...

  • 十一、慢查询分析工具

    mysql 慢查询分析工具一: mysql安装后自动安装mysqldumpslow慢查询工具 使用方法 分析前三条...

  • mysql服务器查询慢原因分析方法

    mysql服务器查询慢原因分析方法 结果:

  • MySQL Explain的用法

    Explain关键字的作用 模拟Mysql优化器是如何执行SQL查询语句,用于分析查询语句或是表结构的性能瓶颈。 ...

  • 2022-10-14

    explain关键字可以模拟MySQL优化器执行SQL语句,可以很好的分析SQL语句或表结构的性能瓶颈。 expl...

  • PHP 之 MySQL 慢查询那点事,你知多少?

    1、简介 开启慢查询日志,可以让 MySQL 记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化...

  • Mysql 慢查询日志配置

    慢查询日志 一、简介 开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更...

  • MySQL 慢查询那点事

    1、简介 开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据...

网友评论

    本文标题:Mysql瓶颈分析方法

    本文链接:https://www.haomeiwen.com/subject/uheffctx.html