首页 > 数据库 >Mysql:explain

Mysql:explain

时间:2023-01-16 09:11:06浏览次数:42  
标签:union explain 查询 索引 subquery Mysql select

explain

mysql提供了一种方式,目的是为了让我们知道sql的执行顺序、索引使用情况、执行效率的情况

table

table是展示执行计划过程中,会使用到的表。
执行explain出现的每条记录都会对应一张单表(可能是存在表,可能是临时表)

id

执行explain后,处于同一个select语句的记录,都对应同一个且唯一ID。
相同ID的多行记录,执行顺序从上往下。
不同ID的多行记录,执行从下往上。

select_type

select_type能标识:每个select语句属于的查询类型。

  1. simple: 查询中不包含union或子查询的都算是simple类型
    2.primary:在union的左边的select查询,以及子查询中外层select查询,属于primary类型
  2. union: 在union中除最左边第一个select查询外,被union的select查询属于union类型
  3. subquery:在子查询中,且是不相关子查询,子查询中的select查询为subquery类型
  4. dependent subquery:在子查询中,且是相关子查询,子查询中的select查询为dependent subquery类型
  5. derived:from 或 连表时,如果表是查询出来的结果集,那么结果集的select查询为derived类型

tyoe

type表示此查询select对某个表访问的方法。
性能从好到坏依次如下:
system > const > eq_ref > ref > fulltext > ref_or_null > indexc_merge > unique_subquery > index_subquery > range > index > all

用到某个索引后,至少要达到range级别,最好是达到ref及以上。

possible_keys

possible_keys表示可能会使用到的索引

key

key表示实际用到的索引。记住:一个select语句中是可以触发多个索引的。

key_len

此字段主要针对联合索引的情况。表示实际用到索引的长度(字节数,联合索引中一般是越大越好)

rows

rows表示当前select查询预估查询的条数,越小越好

filter

filter表示经过某个搜索条件过滤后剩余记录数 占 rows的百分比值。比例越大越好

标签:union,explain,查询,索引,subquery,Mysql,select
From: https://www.cnblogs.com/ibcdwx/p/17049170.html

相关文章

  • 【学习日志】MySQL分表与索引的关系
    什么情况下需要分表呢?分表又能解决什么问题呢?一般情况下分表的直接原因是数据量太大了,比如一张表一共只有1w条数据,确实没必要分表。为什么数据量大了就需要分表呢?首先得看......
  • MySQL判断数据是不是存在的方法
        在mysql中,可以利用count()函数判断数据是否存在,该函数的作用就是用来统计表中记录数据,语法为“selectCOUNT(字段值)as字段名from表名where字段条件;”,......
  • QSAN A Quantum-probability based Signed Attention Network for Explainable False
    一、摘要在社交媒体上的虚假信息检测具有挑战性,因为它通常需要烦冗的证据收集,但又缺乏可用的比较信息。从用户评论中挖掘出的线索作为群体智慧,可能对这项任务有相当大的好......
  • mysql--时间
    mysql时间相关类型:date//年月日2023-1-15time//时分秒10:10:10datetime//年月日时分秒2023-1-1510:10:10timestamp//时间戳,插入,更新时自动写入当前时间注......
  • 解决mysql输入密码无法登录的问题
    ERROR1045(28000):Accessdeniedforuser'root'@'localhost'(usingpassword:YES)当我输入root登录输入密码就会出现这种错误,不输入密码就可以登录,不输入密码里面......
  • 开启wamp依旧使用已下载的mysql
    1.打开D:\Environment\wamp64\bin\mysql\mysql8.0.31,修改my.ini添加本机mysql密码,并且将3个port=3306改为port=33162.打开D:\Environment\wamp64\apps\phpmyadmin5.2.0,......
  • Windows 安装 MySQL
    转:Win10安装MySQL教程下载安装包https://dev.mysql.com/downloads/installer/安装选Custom模式:从可安装的产品(Products)中选择MySQLServer:点击绿色按钮,将......
  • MySQL 5.X升级到8.X
    1.备份数据打开SQLyog,备份数据库为sql文件,以防升级过程中造成数据丢失。2.卸载MySQL5.X2.1停止服务按win键输入cmd,右键选择以管理员身份打开,输入netstopmysql停......
  • MySQL8 转存的 SQL,到 MySQL5 中运行报错 Unknown collation utf8mb4_0900_ai_ci
    转:解决MySQL8转存的SQL,到MySQL5版本中运行报错问题将sql文件中的所有utf8mb4_0900_ai_ci替换为utf8_general_ci,utf8mb4替换为utf8,保存后再次运行sql文件......
  • MySQL的pymysql操作
     MySQL性能强劲,是目前使用最广泛的数据库之一,以 MySQL为学习原型也方便之后掌握其他数据库,下面就给大家全面讲解下MySQL8.0的新特性,从零基础到高阶一站式学习,结合实际案例......