您当前的位置: 首页 >  sql

小志的博客

暂无认证

  • 0浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

MySQL高级——Explain详解

小志的博客 发布时间:2021-02-06 22:36:00 ,浏览量:0

目录
    • 一、Explain是什么(查看执行计划)
    • 二、Explain能干什么
    • 三、Explain怎么用

一、Explain是什么(查看执行计划)
  • 使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是 如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈
  • 官网介绍:https://dev.mysql.com/doc/refman/5.5/en/explain-output.html
  • 在这里插入图片描述
二、Explain能干什么
  • 表的读取顺序
  • 数据读取操作的操作类型
  • 哪些索引可以使用
  • 哪些索引被实际使用
  • 表之间的引用
  • 每张表有多少行被优化器查询
三、Explain怎么用

1、建库、建表、表中新增数据

  • 新建一个名字为test1的数据库名称,初始化4张表分别为t1,t2,t3,t4,并且每张表新增一条数据,sql语句和截图如下:

     CREATE TABLE t1(id INT(10) AUTO_INCREMENT,content  VARCHAR(100) NULL ,  PRIMARY KEY (id));
     CREATE TABLE t2(id INT(10) AUTO_INCREMENT,content  VARCHAR(100) NULL ,  PRIMARY KEY (id));
     CREATE TABLE t3(id INT(10) AUTO_INCREMENT,content  VARCHAR(100) NULL ,  PRIMARY KEY (id));
     CREATE TABLE t4(id INT(10) AUTO_INCREMENT,content  VARCHAR(100) NULL ,  PRIMARY KEY (id));
     INSERT INTO t1(content) VALUES(CONCAT('t1_',FLOOR(1+RAND()*1000)));
     INSERT INTO t2(content) VALUES(CONCAT('t2_',FLOOR(1+RAND()*1000)));
     INSERT INTO t3(content) VALUES(CONCAT('t3_',FLOOR(1+RAND()*1000)));
     INSERT INTO t4(content) VALUES(CONCAT('t4_',FLOOR(1+RAND()*1000)));
    

    在这里插入图片描述在这里插入图片描述

2、Explain语法

  • Explain + SQL语句 在这里插入图片描述

  • 显示出执行计划包含的信息 在这里插入图片描述

关注
打赏
1661269038
查看更多评论
立即登录/注册

微信扫码登录

0.1349s