• Explain详解与索引最佳实践


    前面一章,我们学习了索引,了解了索引的底层数据结构。

    那接下来,肯定是要来根据mySql的存储,来对sql语句进行优化。

    一谈到优化,我们最常见的就是用Explain来进行Sql分析

    是什么

    Explain可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈。

    在 select 语句之前增加 explain 关键字 ,MySQL 会在查询上设置一个标记,执行查询会返回执行计划的信息,而不是执行这条SQL。

    参考官方文档:https://dev.mysql.com/doc/refman/8.0/en/explain-output.html

    废话不多说,直接上实操,先建库表

    DROP TABLE IF EXISTS `actor`;
    # 只有主键索引
    CREATE TABLE `actor`
    (
        `id`          int(11) NOT NULL,
        `name`        varchar(45) DEFAULT NULL,
        `update_time` datetime    DEFAULT NULL,
        PRIMARY KEY (`id`)
    ) ENGINE = InnoDB
      DEFAULT CHARSET = utf8;
    
    INSERT INTO `actor` (`id`, `name`, `update_time`)
    VALUES (1, 'a', '2017-12-22 15:27:18'),
           (2, 'b', '2017-12-22 15:27:18'),
           (3, 'c', '2017-12-22 15:27:18');
    
    
    DROP TABLE IF EXISTS `film`;
    # 主键索引 + name字段索引
    CREATE TABLE `film`
    (
        `id`   int(11) NOT NULL AUTO_INCREMENT,
        `name` varchar(10) DEFAULT NULL,
        PRIMARY KEY (`id`),
        KEY `idx_name` (`name`)
    ) ENGINE = InnoDB
      DEFAULT CHARSET = utf8;
    
    INSERT INTO `film` (`id`, `name`)
    VALUES (3, 'film0'),
           (1, 'film1'),
           (2, 'film2');
    
    
    DROP TABLE IF EXISTS `film_actor`;
    # 主键索引 + film_id, actor_id联合索引
    CREATE TABLE `film_actor`
    (
        `id`       int(11) NOT NULL,
        `film_id`  int(11) NOT NULL,
        `actor_id` int(11) NOT NULL,
        `remark`   varchar(255) DEFAULT NULL,
        PRIMARY KEY (`id`),
        KEY `idx_film_actor_id` (`film_id`, `actor_id`)
    ) ENGINE = InnoDB
      DEFAULT CHARSET = utf8;
    
    INSERT INTO `film_actor` (`id`, `film_id`, `actor_id`)
    VALUES (1, 1, 1),
           (2, 1, 2),
           (3, 2, 1);
    
    

    OK,我们来通过这三个表,来看看Explain的情况

    直接看下面这位兄弟的文章吧。

    https://blog.csdn.net/zza062400/article/details/136320654

  • 相关阅读:
    中风失语 18 年,AI + 脑机接口帮她「意念发声」
    2.jvm规范简单整理
    RFSoC应用笔记 - RF数据转换器 -08- RFSoC关键配置之RF-DAC内部解析(二)
    vue使用高德地图-进行显示地图和查询天气
    LeetCode 35. 搜索插入位置
    设计模式-组合模式
    特种设备作业气瓶充装作业试题及答案
    第11章_数据库的设计规范
    【k8s】10.网络插件
    Mendix发布全球低代码报告,中国软件与低代码发展远超全球
  • 原文地址:https://blog.csdn.net/qq_43602877/article/details/139703442