知识大全 剖析单条查询(2)[1]

Posted 时间

篇首语:人们常说,常识是两点之间最短的直线。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 剖析单条查询(2)[1]相关的知识,希望对你有一定的参考价值。

高性能MySQL:剖析单条查询(2)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   剖析单条查询( )

  剖析报告给出了查询执行的每个步骤及其花费的时间 看结果很难快速地确定哪个步骤花费的时间最多 因为输出是按照执行顺序排序 而不是按花费的时间排序的 而实际上我们更关心的是花费了多少时间 这样才能知道哪些开销比较大 但不幸的是无法通过诸如ORDER BY 之类的命令重新排序 假如不使用SHOW PROFILE 命令而是直接查询INFORMATION_SCHEMA 中对应的表 则可以按照需要格式化输出

  mysql> SET @query_id = ;

  Query OK rows affected ( sec)

  mysql> SELECT STATE SUM(DURATION) AS Total_R

   | Chapter :Profiling Server Performance

   it ebooks info

   > ROUND(

   > * SUM(DURATION) /

   > (SELECT SUM(DURATION)

   > FROM INFORMATION_SCHEMA PROFILING

   > WHERE QUERY_ID = @query_id

   > ) ) AS Pct_R

   > COUNT(*) AS Calls

   > SUM(DURATION) / COUNT(*) AS R/Call

   > FROM INFORMATION_SCHEMA PROFILING

   > WHERE QUERY_ID = @query_id

   > GROUP BY STATE

   > ORDER BY Total_R DESC;

  + + + + + +

  | STATE | Total_R | Pct_R | Calls | R/Call |

  + + + + + +

  | Copying to tmp table | | | | |

  | Sending data | | | | |

  | Sorting result | | | | |

  | removing tmp table | | | | |

  | logging slow query | | | | |

  | checking permissions | | | | |

  | Creating tmp table | | | | |

  | Opening tables | | | | |

  | statistics | | | | |

  | starting | | | | |

  | preparing | | | | |

  | freeing items | | | | |

  | optimizing | | | | |

  | init | | | | |

  | Table lock | | | | |

  | closing tables | | | | |

  | System lock | | | | |

  | executing | | | | |

  | end | | | | |

  | cleaning up | | | | |

  | query end | | | | |

  + + + + + +

  效果好多了!通过这个结果可以很容易看到查询时间太长主要是因为花了一大半的时间在将数据复制到临时表这一步 那么优化就要考虑如何改写查询以避免使用临时表 或者提升临时表的使用效率 第二个消耗时间最多的是 发送数据(Sending data) 这个状态代表的原因非常多 可能是各种不同的服务器活动 包括在关联时搜索匹配的行记录等 这部分很难说能优化节省多少消耗的时间 另外也要注意到 结果排序(Sortingresult) 花费的时间占比非常低 所以这部分是不值得去优化的 这是一个比较典型的问题 所以一般我们都不建议用户在 优化排序缓冲区(tuning sort buffers) 或者类似的活动上花时间

  尽管剖析报告能帮助我们定位到哪些活动花费了最多的时间 但并不会告诉我们为什么会这样 要弄清楚为什么复制数据到临时表要花费这么多时间 就需要深入下去 继续剖析这一步的子任务

cha138/Article/program/MySQL/201311/29708

相关参考

知识大全 剖析单条查询(2)[2]

高性能MySQL:剖析单条查询(2)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  使用S

知识大全 剖析单条查询(3)[2]

高性能MySQL:剖析单条查询(3)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  另外也

知识大全 剖析单条查询(1)[1]

高性能MySQL:剖析单条查询(1)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  剖析单

知识大全 剖析单条查询(3)[1]

高性能MySQL:剖析单条查询(3)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  剖析单

知识大全 单条查询问题还是服务器问题(2)

高性能MySQL:单条查询问题还是服务器问题(2)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 单条查询问题还是服务器问题(1)

高性能MySQL:单条查询问题还是服务器问题(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 剖析MySQL查询

高性能MySQL:剖析MySQL查询  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  剖析MySQ

知识大全 oracle多表查询与子查询

  (一)子查询select*fromtableA  whereidoperator(select*fromtableAawhereaid=)  operaor  单条记录子查询(

知识大全 php执行数据库查询返回json格式数据

  <?php  //需要执行的SQL语句//单条$sql="selectidnamefromtbl_userwhereid=";//多条数据//$sql="selectidnamefromtb

知识大全 剖析服务器负载(2)[1]

高性能MySQL:剖析服务器负载(2)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  剖析