Explain工具介绍
    使用EXPLAIN关键字可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈 在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询会返回执行计划的信息,而不是 执行这条SQL 注意:如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中

    Explain分析示例
    先添加三个数据表并添加几条测试数据

    1. DROP TABLE IF EXISTS `actor`;
    2. CREATE TABLE `actor` (
    3. `id` int(11) NOT NULL,
    4. `name` varchar(45) DEFAULT NULL,
    5. `update_time` datetime DEFAULT NULL,
    6. PRIMARY KEY (`id`)
    7. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    8. INSERT INTO `actor` (`id`, `name`, `update_time`) VALUES (1,'a',now()), (2,'b',now()), (3,'c',now());
    9. DROP TABLE IF EXISTS `film`;
    10. CREATE TABLE `film` (
    11. `id` int(11) NOT NULL AUTO_INCREMENT,
    12. `name` varchar(10) DEFAULT NULL,
    13. PRIMARY KEY (`id`),
    14. KEY `idx_name` (`name`)
    15. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    16. INSERT INTO `film` (`id`, `name`) VALUES (3,'film0'),(1,'film1'),(2,'film2');
    17. DROP TABLE IF EXISTS `film_actor`;
    18. CREATE TABLE `film_actor` (
    19. `id` int(11) NOT NULL,
    20. `film_id` int(11) NOT NULL,
    21. `actor_id` int(11) NOT NULL,
    22. `remark` varchar(255) DEFAULT NULL,
    23. PRIMARY KEY (`id`),
    24. KEY `idx_film_actor_id` (`film_id`,`actor_id`)
    25. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    26. INSERT INTO `film_actor` (`id`, `film_id`, `actor_id`) VALUES (1,1,1),(2,1,2),(3,2,1);

    使用查询:
    image.png
    image.png
    image.png

    image.png

    image.png

    image.png

    image.png

    image.png