zoukankan      html  css  js  c++  java
  • last_query_cost

     

    The total cost of the last compiled query as computed by the query optimizer. This is useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet. The default value is 0. Last_query_cost has session scope.

    The Last_query_cost value can be computed accurately only for simple flat queries, not complex queries such as those with subqueries or UNION. For the latter, the value is set to 0.

    (last_query_cost对于简单的查询可以精确的得到计算,但于包含子查询或union的复杂查询值是0)

    Q:

    When doing query optimization, the SHOW STATUS query returns values that are easy to understand with some practice and explanation.

    But last_query_cost is obscure and poorly documented.

    The only thing explained is that it must be read as an anti-macho value: the smaller the better.

    But do we have further information about this high-level value? What is its unit? How is it calculated (estimated)? etc. How can we use it for an advanced profiling?

    A:

    This has to do with how the MySQL Query Optimizer works. When you enter and execute a query, MySQL will construct a query plan. This is done by evaluating how the query can be executed in several different ways, and assigning "costs" to the different possibilities. These costs are based mostly on internal statistics, and includes data such as the number of rows in the table, the cardinality of different indices and so forth. When this is done, MySQL choses the least expensive plan and executes the query. The last_query_cost value is this cost value.

    As you've no doubt seen in the manual:

    The total cost of the last compiled query as computed by the query optimizer. This is useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet. The default value is 0. Last_query_cost has session scope.

    This is indeed true. The value is only useful as a quantitative measurement to compare different queries.

    There's some interesting resources on the query optimizer available online, if you want to learn more. Unfortunately, I don't have any links for you readily available, but it shouldn't be too hard to find some resources through a simple search for "mysql query optimizer".

    参考:

    https://dev.mysql.com/doc/refman/5.5/en/server-status-variables.html#statvar_Last_query_cost
    http://stackoverflow.com/questions/1071708/further-information-about-last-query-cost-in-mysql

  • 相关阅读:
    Java动态绑定和静态绑定-多态
    Java方法内联
    Java反射机制及原理
    Jvm-类加载机制
    Zookeeper 源码解析-环境准备
    SpringMvc源码解析
    Java虚拟机的意义
    起跑线
    js动态生成html,onclick事件失效解决方法
    虚拟机能ping通,但是telnet某个端口却不行
  • 原文地址:https://www.cnblogs.com/xiaotengyi/p/3565471.html
Copyright © 2011-2022 走看看