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

  • 相关阅读:
    css-深入理解margin和padding
    js的自定义事件
    jcFlexible.js的小Demo
    volatile关键字回顾
    threadLocalMap理解
    常用SQL笔记
    MyISAM和innoDB对比,覆盖索引简单回顾
    经典算法回顾:两个队列生成一个栈,两个栈生成一个队列
    Memcached与Redis对比,Redis基础笔记回顾
    ES(ElasticSearch)学习总结
  • 原文地址:https://www.cnblogs.com/xiaotengyi/p/3565471.html
Copyright © 2011-2022 走看看