devops:改变思维,让一切更加高效MySQL

Mysql瓶颈分析方法

2019-06-11  本文已影响1人  潘晓华Michael
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;

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

  1. soar小米SQL分析工具
    SOAR(SQL Optimizer And Rewriter)是一个对SQL进行优化和改写的自动化工具。 由小米人工智能与云平台的数据库团队开发与维护。

上一篇 下一篇

猜你喜欢

热点阅读