zoukankan      html  css  js  c++  java
  • 8.8.1 Optimizing Queries with EXPLAIN

    8.8 Understanding the Query Execution Plan
    [+/-]

    8.8.1 Optimizing Queries with EXPLAIN
    8.8.2 EXPLAIN Output Format
    8.8.3 EXPLAIN EXTENDED Output Format
    8.8.4 Estimating Query Performance

    根据你表的信息,列,索引,你的where 条件,MySQL 优化器考虑很多的技术来有效的查找执行一个查询。

    一个查询在一个大表上可以被执行不需要读取所有的表,一个关联调用几个表能被执行不比较每一个组合的行。

    优化选择来执行更高效的查询被叫做查询执行计划, 也被称为 EXPLAIN plan.你的目的是识别

    EXPLAIN 计划的部分,表明查询是否是最优的,学习SQL 符号和索引技术来实现计划,如果你看到一些低效的操作。

    8.8.1 Optimizing Queries with EXPLAIN 优化查询使用执行计划

    在MySQL 5.6.3,允许解释语句用于EXPLAIN 是SELECT,DELETE,INERT REPLACE和UPDATE.

    在MySQL 5.6.3前, SELECT 是唯一的解释语句:

    当EXPLAIN 是用于一个解释语句,MySQL 从优化器显示信息关于语句的执行计划。

    那是,MySQL explain 它如何处理语句,包括信息关于表如何关联,和什么关联顺序。

    使用EXPLAIN 得到的执行计划信息:

    EXPLAIN EXTENDED 可以用于得到额外的执行计划信息

    EXPLAIN PARTITIONS 是用于检查查询涉及的分区表。

    在MySQL 5.6.3,FORMAT 选项被用于查看格式输出, 传统的是以表格格式输出。

    如果没有格式选项,这是默认的。 JSON格式显示的信息。

    在EXPLAIN 的帮助下,你可以看到哪里你应该给表加索引,以便让语句执行的更快

    通过使用索引来找到行。你也可以使用EXPLAIN 来检查是否优化器 关联表使用正确的顺序,

    指定hint 来优化使用关联顺序相关的, 用SELECT STRAIGHT_JOIN JOIN 相比直接SELECT。

    如果你有一个索引的问题不被使用,但是你认为应该走,运行ANALYZE TABLE 来更新统计信息, 比如keys(索引)的基数,

  • 相关阅读:
    【转】CentOS8新特性
    【转】Python 库打包分发(setup.py 编写)简易指南
    【转】Python3的venv虚拟环境操作(Linux)
    【转】Qt绘图之QGraphicsScene QGraphicsView QGraphicsItem详解
    【转】Qt 积累
    webapi 参数传递详解
    WPF 字体图标样式
    asp net core mvc 跨域ajax解决方案
    NPOI导出Excel封装
    XML序列化CDATA
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351412.html
Copyright © 2011-2022 走看看