MySQL进阶_3.性能分析工具的使用

文章目录

  • 第一节、数据库服务器的优化步骤
  • 第二节、查看系统性能参数
  • 第三节、 慢查询日志
  • 第四节、 查看 SQL 执行成本
  • 第五节、 分析查询语句:EXPLAIN

第一节、数据库服务器的优化步骤

当我们遇到数据库调优问题的时候,可以按照以下流程进行分析。整个流程划分成了 观察(Show status)行动(Action) 两个部分。字母 S 的部分代表观察(会使用相应的分析工具),字母 A 代表的部分是行动(对应分析可以采取的行动)。
MySQL进阶_3.性能分析工具的使用_第1张图片
MySQL进阶_3.性能分析工具的使用_第2张图片

第二节、查看系统性能参数

在MySQL中,可以使用 SHOW STATUS 语句查询一些MySQL数据库服务器的 性能参数 、 执行频率

SHOW [GLOBAL|SESSION] STATUS LIKE '性能参数';

性能参数包括:

  • Connections:连接MySQL服务器的次数
  • Uptime:MySQL服务器的上线时间
  • Slow_queries:慢查询的次数
  • Innodb_rows_read:Select查询返回的行数
  • Innodb_rows_inserted:执行INSERT操作插入的行数
  • Innodb_rows_updated:执行UPDATE操作更新的行数
  • Innodb_rows_deleted:执行DELETE操作删除的行数
  • Com_select:查询操作的次数
  • Com_insert:插入操作的次数。对于批量插入的 INSERT 操作,只累加一次
  • Com_update:更新操作的次数
  • Com_delete:删除操作的次数
  • last_query_cost:一条SQL查询语句在执行前需要确定查询执行计划,如果存在多种执行计划的话,MySQL会计算每个执行计划所需要的成本,从中选择成本最小的一个作为最终执行的执行计划,如果我们想要查看某条SQL语句的查询成本,可以在执行完这条SQL语句之后,通过查看当前会话中的last_query_cost变量值来得到当前查询的成本。它通常也是我们评价一个查询的执行效率的一个常用指标。这个查询成本对应的是 SQL语句所需要读取的页的数量

第三节、 慢查询日志

  • 目前公司里有DBA做这些事情,如果以后有需要再详细学习。
  • MySQL的慢查询日志,用来记录在MySQL中响应时间超过阀值的语句。具体指运行时间超过long_query_time值的SQL,会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10秒以上(不含10秒)的语句,认为是超出了我们的最大忍耐时间值。|
  • 它的主要作用是:帮助我们发现那些执行时间特别长的SQL查询,并且有针对性地进行优化,从而提高系统的整体效率。当我们的数据库服务器发生阻塞、运行变慢的时候,检查一下慢查询日志,找到那些慢查询,对解决问题很有帮助。比如一条sql执行超过5秒钟,我们就算慢SQL,希望能收集超过5秒的sql,结合explain进行全面分析。
  • 默认情况下,MySQL数据库没有开启慢查询日志,需要我们手动来设置这个参数。如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。
  • 慢查询日志支持将日志记录写入文件。

第四节、 查看 SQL 执行成本

Show Profile是MysQL提供的可以用来分析当前会话中SQL都做了什么、执行的资源消耗情况的工具,可用于sql调优的测量。默认情况下处于关闭状态,并保存最近15次的运行结果。
MySQL进阶_3.性能分析工具的使用_第3张图片

如上图,可以看到一条SQL语句执行过程中的各个步骤,以及每个步骤的耗时。还可以添加查询参数,比如:cpu。

第五节、 分析查询语句:EXPLAIN

你可能感兴趣的:(MySQL,mysql,数据库,java,intellij-idea)