mysql 查询优化 ~ 善用profie利器

Posted 开心的蛋黄派

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 查询优化 ~ 善用profie利器相关的知识,希望对你有一定的参考价值。

一 简介:利用profile分析慢语句的过程有助于我们进行语句的优化

二 执行过程
   set profiling=1;
   set profiling=0;
  2 执行sql
  3 查看过程消耗

三 结果

  1 查看执行过程耗时
  SHOW profile FOR query 1
  checking permissions:检查权限
  Opening tables:打开表
  init : 初始化
  System lock :系统锁
  optimizing : 优化
  statistics : 统计
  preparing :准备
  executing :执行
  Sending data :发送数据
  Sorting result :排序
  end :结束
  query end :查询 结束
  closing tables : 关闭表 /去除TMP 表
  freeing items : 释放物品
  cleaning up :清理
  值得关注的值 1 sending data 2 Sorting result 3 Opening tables 以上所有的值并不是都会出现,这点要注意
  2 查看资源消耗
 SHOW profile all FOR query 2
 "Duration": 持续时间
 "CPU_user": cpu用户
 "CPU_system": cpu系统
 "Context_voluntary":上下文主动切换
 "Context_involuntary": 上下文被动切换
 "Block_ops_in": 阻塞的输入操作
 "Block_ops_out": 阻塞的输出操作
 "Page_faults_major": 主分页错误
 "Page_faults_minor": 次分页错误
 值得关注的值 1 CPU相关值 2 Context 相关值 3 Block相关值
5 表查询
 SELECT STATE, FORMAT(DURATION, 6) AS DURATION FROM INFORMATION_SCHEMA.PROFILING WHERE QUERY_ID = 1 ORDER BY SEQ;




































以上是关于mysql 查询优化 ~ 善用profie利器的主要内容,如果未能解决你的问题,请参考以下文章

MySQL索引类型,优化,使用数据结构

ElasticsearchElasticsearch的IndexSorting:一种查询性能优化利器

掌握查询利器 深入理解PostgreSQL索引原理与优化

MySQL查询没有正确使用索引?

互联网性能优化利器-缓存

mysql 子查询 优化