• MySQ数据库explain命令字段type有哪些状态


    Type列用来表示访问类型,性能从低到高依次是:ALL-->>index-->>range-->>ref-->>eq_ref-->>const,system-->>NULL

    状态有:

        ALL:Full Table Scan,MySQL将遍历全表以找到匹配的行。

        index:Full Index Scan,index与ALL区别为index类型只遍历索引树。

        range:索引范围扫描,对索引的扫描开始于某一点,返回匹配值域的行,常见于between、>、<等的查询。

        unique_subquery:用于where中的in形式子查询,子查询返回不重复值唯一值。

        index_subquery:用于in形式子查询使用到了辅助索引或者in常数列表,子查询可能返回重复值,可以使用索引将子查询去重。

        ref:非唯一性索引扫描,返回匹配某个单独值的所有行。常见于使用非唯一索引和唯一索引的非唯一前缀进行的查找。

        eq_ref:唯一性索引扫描,对于每个索引键,表中只有一条记录与之匹配。常见于主键或唯一索引扫描的多表链接操作中。

        system:当MySQL对查询某部分进行优化,并转换为一个常量时,使用这些类型访问。如将主键置于where列表中,MySQL就能将该查询转换为一个常量。System为表中只有一行数据或者是空表,且只能用于myisam和memory表。如果是Innodb引擎表,type列在这个情况通常都是all或者index。

        const:使用唯一索引或者主键,返回记录一定是1行记录的等值where条件时,通常type是const。其他数据库也叫做唯一索引扫描。

        NULL:MySQL在优化过程中分解语句,执行时甚至不用访问表或索引。

  • 相关阅读:
    关于idea的目录, mybatis里mapper无法用resource获取 和 驼峰命令规则
    直接调用类方法 和 new再调用方法 的区别
    腾讯笔试题
    linux安装包
    centos 学习笔记一
    putty链接l虚拟机linux centos
    单链表的一般处理(C语言)
    华为2011机试题
    【转】函数返回类型为指针类型时的一些问题
    在 Windows Server 2012 上安装 dotNET Framework v3.5
  • 原文地址:https://www.cnblogs.com/li-guanhua/p/13692504.html
Copyright © 2020-2023  润新知