最全MySQL8.0实战教程 22 MySQL的优化 22.4 explain分析执行计划 22.4.1 基本使用
最全MySQL8.0实战教程
文章目录
- 最全MySQL8.0实战教程
- 22 MySQL的优化
- 22.4 explain分析执行计划
- 22.4.1 基本使用
【黑马程序员MySQL知识精讲+mysql实战案例_零基础mysql数据库入门到高级全套教程】
22 MySQL的优化
22.4 explain分析执行计划
22.4.1 基本使用
通过以上步骤查询到效率低的 SQL 语句后,可以通过 EXPLAIN命令获取 MySQL如何执行 SELECT 语句的信息,包括在 SELECT 语句执行过程中表如何连接和连接的顺序。
-- 准备测试数据
create database mydb13_optimize;
use mydb13_optimize; 执行sql脚本sql_optimize.sql添加数据
sql_optimize.sql
/*Navicat Premium Data TransferSource Server : conn-localhostSource Server Type : MySQLSource Server Version : 80025Source Host : localhost:3306Source Schema : mydb13_optimizeTarget Server Type : MySQLTarget Server Version : 80025File Encoding : 65001Date: 03/11/2021 14:10:53
*/SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for privilege
-- ----------------------------
DROP TABLE IF EXISTS `privilege`;
CREATE TABLE `privilege` (`pid` int NOT NULL AUTO_INCREMENT,`pname` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,PRIMARY KEY (`pid`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of privilege
-- ----------------------------
INSERT INTO `privilege` VALUES (1, '玩跑车');
INSERT INTO `privilege` VALUES (2, '挖煤');
INSERT INTO `privilege` VALUES (3, '敲代码');-- ----------------------------
-- Table structure for role
-- ----------------------------
DROP TABLE IF EXISTS `role`;
CREATE TABLE `role` (`rid` int NOT NULL AUTO_INCREMENT,`rname` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,PRIMARY KEY (`rid`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of role
-- ----------------------------
INSERT INTO `role` VALUES (1, '女神');
INSERT INTO `role` VALUES (2, '屌丝');
INSERT INTO `role` VALUES (3, '老板');-- ----------------------------
-- Table structure for role_privilege
-- ----------------------------
DROP TABLE IF EXISTS `role_privilege`;
CREATE TABLE `role_privilege` (`rid` int NULL DEFAULT NULL,`pid` int NULL DEFAULT NULL,INDEX `rid`(`rid`) USING BTREE,INDEX `pid`(`pid`) USING BTREE,CONSTRAINT `role_privilege_ibfk_1` FOREIGN KEY (`rid`) REFERENCES `role` (`rid`) ON DELETE RESTRICT ON UPDATE RESTRICT,CONSTRAINT `role_privilege_ibfk_2` FOREIGN KEY (`pid`) REFERENCES `privilege` (`pid`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of role_privilege
-- ----------------------------
INSERT INTO `role_privilege` VALUES (1, 1);
INSERT INTO `role_privilege` VALUES (1, 3);
INSERT INTO `role_privilege` VALUES (2, 2);-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (`uid` int NOT NULL AUTO_INCREMENT,`uname` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,PRIMARY KEY (`uid`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, '小巧');
INSERT INTO `user` VALUES (2, '张飞');
INSERT INTO `user` VALUES (3, '貂蝉');-- ----------------------------
-- Table structure for user_role
-- ----------------------------
DROP TABLE IF EXISTS `user_role`;
CREATE TABLE `user_role` (`uid` int NULL DEFAULT NULL,`rid` int NULL DEFAULT NULL,INDEX `uid`(`uid`) USING BTREE,INDEX `rid`(`rid`) USING BTREE,CONSTRAINT `user_role_ibfk_1` FOREIGN KEY (`uid`) REFERENCES `user` (`uid`) ON DELETE RESTRICT ON UPDATE RESTRICT,CONSTRAINT `user_role_ibfk_2` FOREIGN KEY (`rid`) REFERENCES `role` (`rid`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of user_role
-- ----------------------------
INSERT INTO `user_role` VALUES (1, 1);
INSERT INTO `user_role` VALUES (1, 2);
INSERT INTO `user_role` VALUES (2, 2);
INSERT INTO `user_role` VALUES (3, 3);SET FOREIGN_KEY_CHECKS = 1;
表间关系
explain select * from user where uid = 1;
explain select * from user where uname = '张飞';
最全MySQL8.0实战教程 22 MySQL的优化 22.4 explain分析执行计划 22.4.1 基本使用相关推荐
- 最全MySQL8.0实战教程 14 MySQL的存储过程 14.2 入门案例
最全MySQL8.0实战教程 文章目录 最全MySQL8.0实战教程 14 MySQL的存储过程 14.2 入门案例 14.2.1 格式 14.2.2 操作 - 数据准备 14.2.3 操作 - 创建 ...
- 最全MySQL8.0实战教程 14 MySQL的存储过程 14.1 概述
最全MySQL8.0实战教程 文章目录 最全MySQL8.0实战教程 14 MySQL的存储过程 14.1 概述 14.1.1 什么是存储过程 14.1.2 特性 [黑马程序员MySQL知识精讲+my ...
- 最全MySQL8.0实战教程 2 SQL语言基础
最全MySQL8.0实战教程 文章目录 最全MySQL8.0实战教程 2 SQL语言基础 2.1 SQL的概述 2.2 SQL的特点 2.3 SQL语言的组成 2.4 语法特点 [黑马程序员MySQL ...
- 最全MySQL8.0实战教程
文章目录 最全MySQL8.0实战教程 一.前言 1.计算机语言概述 2.SQL的概述 2.1 语法特点 2.2 MySQL的安装 2.2.1 方式1:解压配置方式 2.2.2 方式2:步骤安装方式 ...
- MySQL优化——Explain分析执行计划详解
文章目录 前言 一. 查看SQL执行频率 二. 定位低效率执行SQL 三. explain分析执行计划 3.1 id 3.2 select_type 3.3 table 3.4 type 3.5 ke ...
- centos7 mysql 源码安装_CentOS7.4 源码安装MySQL8.0的教程详解
MySQL 8 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 以下为本人2018.4.23日安装过程的记录.整个过程大 ...
- Linux7.5 安装mysql8.0.13教程
centos64位Linux7.5 安装mysql8.0.13教程 注意事项提前说明: 1:吾日三省吾身,防火墙关了没?(万一安装好了的MySQL,链接不上半天没有想到是防火墙在作祟)标点符号中英文搞 ...
- MySQL8.0卸载教程
「作者主页」:士别三日wyx 「作者简介」:CSDN top200.阿里云博客专家.华为云享专家.网络安全领域优质创作者 安装MySQL可参考我的另一篇文章:MySQL 8.0安装教程 使用MySQL ...
- MySQL8.0安装教程,在Linux环境安装MySQL8.0教程,最新教程 超详细
在Linux系统安装MySQL8.0,网上已经有很多的教程了,到自己安装的时候却发现各种各样的问题,现在把安装过程和遇到的问题都记录下来. 需要说明的一点是我使用的是SSH secure shell ...
最新文章
- 教你用Python解决非平衡数据问题(附代码)
- mstsc连接远程桌面如何挂载本地磁盘
- python爬取csdn排名积分等信息
- Python使用远程仓库时建议忽略的文件
- python 16bit转8bit的工具_利用python读取YUV文件 转RGB 8bit/10bit通用
- 北妈是谁、谁是北妈?他为何如此帅?
- Spring boot工程创建
- .Net 让网页列表的前3条显示New图标
- Map习题 - 三国武将基础信息处理
- Mac系统下设置Maven环境
- javascript中 try catch finally 的使用
- 为什么阿里巴巴禁止在foreach里进行元素的remove/add操作
- rk3399 rt5640 录音调试记录
- 爱豆被“调包”?周杰伦:说好不哭
- 好家伙!MIT博士生凭借「扭动奥利奥饼干」发了篇论文!
- 如何使用Python进行投资收益和风险分析
- android开发笔记之reflect使用
- 小程序转uniapp——disabled
- Drupal9.1.8通过phpStudy安装后除首页其他页面均404处理
- Opencv 基础(三):使用OpenCV裁剪图像
热门文章
- 3月28日服务器维护,【已开服】3月28日全部服务器更新维护公告
- nokia vcf文件导入iphone(转)
- 如果你能看到,请你帮我一起转,转到全中国
- python搬运youtube视频到大鱼_【具体介绍请点开详细】大鱼 绯闻外援 矿工泰森·弗兰达 集锦(油管搬运)...
- 优雅地使用pt-archiver进行数据归档
- CSS 如何实现文字两端对齐
- python Format()函数的用法___实例详解(一)(全,例多)___各种格式化替换,format对齐打印
- js获取当前时间,精确到毫秒
- 淮工CTF——misc部分wp
- RoHS1.0 仪器操作规范指导