Explain详解与索引最佳实践
相信大多数的java开发程序员,日常工作,免不了涉及数据库的增删改查。而当你写完一句查询语句后,你肯定在想,如果可以事先知道该语句的执行效率,那就可以一定程度上避免设计出糟糕的语句了。那这种工具有吗?还真的有,那就是Explain。 使用EXPLAIN关键字可以模拟数据库优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈。在 select 语句之前增加 explain 关键字,MySQL会在查询上设置一个标记,执行查询会返回执行计划的信息,而不是执行这条SQL。 Explain分析实战 说明下实验环境,博主使用的mysql数据库为8.0.18 MySQL Community Server - GPL,运行在阿里云的centos服务器上。 数据库初始化脚本如下,创建了三张表,student学生信息表,course课程信息表,stuent_course学生选课评教表。 DROP TABLE IF EXISTS ` student ` ; CREATE TABLE ` student ` ( ` id ` bigint ( 14 ) NOT NULL , ` name ` varchar ( 45 ) NOT NULL , ` sex ` CHAR ( 1 ) NOT NULL , PRIMARY KEY ( ` id ` ) ) ENGINE = InnoDB DEFAULT