首页 > 数据库 >MySQL 执行计划需要详细查看的内容

MySQL 执行计划需要详细查看的内容

时间:2024-02-20 14:23:13浏览次数:37  
标签:查看 union 查询 索引 详细 MySQL using where id


1、id(重要):每一个select语句都会分配一个id。

  id相同,从上到下执行

  id不同,id越大,越先执行

  id为null,不查询,仅表示一个结果集

2、select_type(重要):查询类型

  simple:简单查询,不包括子查询,union查询

  primary:select查询字段列中存在子查询

  union:存在union操作,且union操作外还进行查询

  union result:union之后的结果

  derived:查询之后再查询(查询里面嵌套查询)

  subquery:where条件中包含子查询

3、table:显示查询的表名

4、type(重要):判断是否用到索引,执行计划的连接类型

  效率由高到低:system > const > eq_ref > ref > range > index > all

  system:表里只有一行数据或空表

  const:使用唯一索引或主键,或者where条件查询返回1条记录

  eq_ref:join时使用主键或者唯一索引连接,前表的每一个结果,都只匹配到后表的一行结果

  ref:针对非唯一索引等值查询、关联

  range:索引范围扫描,常见的有 >,<,is null,between and,in,like等运算

  index:索引全表扫描,查询的联合索引字段出现在select后,或者where后

  all:全表数据扫描

5、key(重要):真正使用到的索引

6、Extra(重要):

  distinct:使用到了distinct关键字

  no tables used:不带from子句的查询

  using where:使用到了where条件

  using index:查询时不需要回表,可直接通过索引查到数据

  using temporary:临时表存储中间结果(对查询结果order by、group by)

  using filesort:排序时无法使用到索引(常见于order by、group by)

7、rows:扫描的行数

  不是精确值 (lnnoDB不是精确的值,MVISAM是精确的值,主要原因是lnnoDB 里面使用了MVCC并发机制)

标签:查看,union,查询,索引,详细,MySQL,using,where,id
From: https://www.cnblogs.com/karrya/p/18022974

相关文章

  • 打开云服务器的MySQL数据库表很慢
    远程连接MYSQL速度慢,有时远程连接到MYSQL用时4-20秒不等,本地连接MYSQL正常。出现这种问题的主要原因是,默认安装的MYSQL开启了DNS的反向解析。解决方法:在my.ini(WINDOWS系统下)或my.cnf(UNIX或LINUX系统下)文件的[mysqld]下加入skip-name-resolve这一句。连接mysql速度慢的解决......
  • centos6设置mysql5.7开机自启
    环境:OS:Centos6db:mysql5.7 1.修改启动文件#!/bin/sh#CopyrightAbandoned1996TCXDataKonsultAB&MontyProgramKB&DetronHB#ThisfileispublicdomainandcomeswithNOWARRANTYofanykind#MySQLdaemonstart/stopscript.#Usuallythisi......
  • 解锁Mysql中的JSON数据类型,怎一个爽字了得
    引言在实际业务开发中,随着业务的变化,数据的复杂性和多样性不断增加。传统的关系型数据库模型在这种情况下会显得受限,因为它们需要预先定义严格的数据模式,并且通常只能存储具有相同结构的数据。而面对非结构化或半结构化数据的存储和处理需求,选择使用非关系型数据库或者创建子表存......
  • Kob_配置Mysql与注册登录模块(中)
    配置Mysql与注册登录模块(中)session与jwtsession验证url包括公开的和需要权限的登录,注册这种页面肯定是公开界面,大家都可以访问.发送一个登录请求,将账号和密码发送到服务器,服务器接收数据去和数据库存储的账号密码数据进行比对,如果通过就向用户发送一个sessionid,用户会将这......
  • MySQL 零碎笔记2
    1.分区表适用场景:业务简单,单表查询,且都跟时间范围查询相关。数据需要定期清理数据,无需保留全部数据。数据更新频率较低,只有写入操作。优点:查询条件包含分区条件时,可以直接扫描必要的分区。也可以直接指定必要的分区来提高查询效率。聚合查询时,可以很容易地在每个分区上并行......
  • 一例MySQL的insert死锁
    原文链接:https://fanyilun.me/2022/03/09/%E4%B8%80%E4%BE%8BMySQL%E7%9A%84insert%E6%AD%BB%E9%94%81/ 分享一个最近遇到的一例MySQL死锁。关于MySQL的锁,几年前写过一篇原理类的文章,基础知识建议移步MySQL加锁分析。背景  我们使用MySQL实现了一个通用的分布式DB锁,建表语句......
  • Mysql中使用rule作为表的别名引发的语法错误
    不可以使用rule作为别名MySQL表别名不能为"rule",因为"rule"是MySQL的保留关键字。你可以使用其他名称作为别名,例如:SELECT*FROMyour_tableASrule;将"your_table"替换为你的表名,将"rule"替换为你想要的别名。"rule"是MySQL的保留关键字吗在MySQL中,“rule”作为保留关键......
  • GaussDB(for MySQL) Serverless全面商用:无感弹性,极致性价比
    本文分享自华为云社区《GaussDB(forMySQL)Serverless全面商用:无感弹性,极致性价比》,作者:GaussDB数据库。技术背景对于现代企业级IT系统,数据库往往是作为底座一般的存在,数据库的稳定性、可靠性如果难以保障,整个系统的平稳运行将无从谈起。出于如上考量,在部署数据库资源时,客户......
  • 基于python+mysql的宠物领养网站系统
    功能介绍平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。整个平台包括前台和后台两个部分。前台功能包括:首页、宠物详情页、用户中心模块。后台功能包括:总览、领养管理、宠物管理、分类管理、标签管理、评论管理、用户管理、运营管理、日志......
  • MySQL死锁日志
    MySQL死锁日志MySQL的死锁可以通过showengineinnodbstatus\G;来查看,最近的死锁信息在LATESTDETECTEDDEADLOCK下面。但是这种方式只能显示最新的一条死锁信息,该方式无法完全捕获到系统发生的死锁信息。MySQL系统内部提供一个innodb_print_all_deadlocks参数,该参数默......