zoukankan      html  css  js  c++  java
  • MySQL 5.7 跟踪优化器

    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 5
    Server version: 5.7.12 MySQL Community Server (GPL)

    Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.

    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

    mysql> show variables like '%optimizer_trace%';
    +------------------------------+----------------------------------------------------------------------------+
    | Variable_name                | Value                                                                      |
    +------------------------------+----------------------------------------------------------------------------+
    | optimizer_trace              | enabled=off,one_line=off                                                   |
    | optimizer_trace_features     | greedy_search=on,range_optimizer=on,dynamic_range=on,repeated_subselect=on |
    | optimizer_trace_limit        | 1                                                                          |
    | optimizer_trace_max_mem_size | 16384                                                                      |
    | optimizer_trace_offset       | -1                                                                         |
    +------------------------------+----------------------------------------------------------------------------+
    5 rows in set (0.01 sec)

    mysql> set optimizer_trace='enabled=on',end_markers_in_json=on;
    Query OK, 0 rows affected (1.99 sec)

    mysql> select * from fire.test;
    +------+
    | a    |
    +------+
    |   20 |
    +------+
    1 row in set (0.00 sec)

    mysql> select * from information_schema.optimizer_traceG
    *************************** 1. row ***************************
                                QUERY: select * from fire.test
                                TRACE: {
      "steps": [
        {
          "join_preparation": {
            "select#": 1,
            "steps": [
              {
                "expanded_query": "/* select#1 */ select `fire`.`test`.`a` AS `a` from `fire`.`test`"
              }
            ] /* steps */
          } /* join_preparation */
        },
        {
          "join_optimization": {
            "select#": 1,
            "steps": [
              {
                "table_dependencies": [
                  {
                    "table": "`fire`.`test`",
                    "row_may_be_null": false,
                    "map_bit": 0,
                    "depends_on_map_bits": [
                    ] /* depends_on_map_bits */
                  }
                ] /* table_dependencies */
              },
              {
                "rows_estimation": [
                  {
                    "table": "`fire`.`test`",
                    "table_scan": {
                      "rows": 1,
                      "cost": 1
                    } /* table_scan */
                  }
                ] /* rows_estimation */
              },
              {
                "considered_execution_plans": [
                  {
                    "plan_prefix": [
                    ] /* plan_prefix */,
                    "table": "`fire`.`test`",
                    "best_access_path": {
                      "considered_access_paths": [
                        {
                          "rows_to_scan": 1,
                          "access_type": "scan",
                          "resulting_rows": 1,
                          "cost": 1.2,
                          "chosen": true
                        }
                      ] /* considered_access_paths */
                    } /* best_access_path */,
                    "condition_filtering_pct": 100,
                    "rows_for_plan": 1,
                    "cost_for_plan": 1.2,
                    "chosen": true
                  }
                ] /* considered_execution_plans */
              },
              {
                "attaching_conditions_to_tables": {
                  "original_condition": null,
                  "attached_conditions_computation": [
                  ] /* attached_conditions_computation */,
                  "attached_conditions_summary": [
                    {
                      "table": "`fire`.`test`",
                      "attached": null
                    }
                  ] /* attached_conditions_summary */
                } /* attaching_conditions_to_tables */
              },
              {
                "refine_plan": [
                  {
                    "table": "`fire`.`test`"
                  }
                ] /* refine_plan */
              }
            ] /* steps */
          } /* join_optimization */
        },
        {
          "join_execution": {
            "select#": 1,
            "steps": [
            ] /* steps */
          } /* join_execution */
        }
      ] /* steps */
    }
    MISSING_BYTES_BEYOND_MAX_MEM_SIZE: 0
              INSUFFICIENT_PRIVILEGES: 0
    1 row in set (0.00 sec)

  • 相关阅读:
    shell中逻辑与的两种表示方法
    Git学习之Git恢复进度
    RH318之域控服务器
    《征服C指针》读书笔记
    2013年:一个技术领导的启程
    sqlite的一个Unable to Open database file的坑爹错误
    我的2013——青春的躁动
    C/C++注册动态对象到Lu系统并进行运算符重载
    Geeks面试题:Min Cost Path
    Leetcode Gray Code
  • 原文地址:https://www.cnblogs.com/ThinkVenus/p/8781111.html
Copyright © 2011-2022 走看看