苏眠月|MySQL优化:explain、show profile和show processlist
推荐学习
- 春招指南之“性能调优”:MySQL+Tomcat+JVM , 还怕面试官的轰炸?
- MySQL性能优化21个最佳实践 , 一个一个分解给你看 , 还怕搞不定?
- 阿里P8MySQL , 基础/索引/锁/日志/调优都不误 , 一锅深扒端给你
本文主要基于MySQL5.6讲解其用法 , 因为之后的MySQL版本会去掉show profile功能 。
SQL脚本本篇使用的表结构以及数据如下
/*Table structure for table `dept` */CREATE TABLE `dept` (`deptno` int(2) NOT NULL,`dname` varchar(15) DEFAULT NULL,`loc` varchar(15) DEFAULT NULL,PRIMARY KEY (`deptno`) USING BTREE,UNIQUE KEY `index_dept_dname` (`dname`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;/*Data for the table `dept` */insertinto `dept`(`deptno`,`dname`,`loc`) values (10,'ACCOUNTING','NewYork'),(20,'RESEARCH','Dallas'),(30,'SALES','Chicago'),(40,'OPERATIONS','Boston');/*Table structure for table `emp` */CREATE TABLE `emp` (`empno` int(4) NOT NULL,`ename` varchar(10) DEFAULT NULL,`job` varchar(10) DEFAULT NULL,`mgr` int(4) DEFAULT NULL,`hiredate` date DEFAULT NULL,`sal` decimal(7,0) DEFAULT NULL,`comm` decimal(7,0) DEFAULT NULL,`deptno` int(2) DEFAULT NULL,PRIMARY KEY (`empno`) USING BTREE,KEY `index_emp_ename` (`ename`),KEY `index_emp_deptno` (`deptno`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;/*Data for the table `emp` */insertinto `emp`(`empno`,`ename`,`job`,`mgr`,`hiredate`,`sal`,`comm`,`deptno`) values (7369,'SMITH','CLERK',7902,'1980-12-17',800,NULL,20),(7499,'ALLEN','SALESMAN',7698,'1981-02-20',1600,300,30),(7521,'WARD','SALESMAN',7698,'1981-02-22',1250,500,30),(7566,'JONES','MANAGER',7839,'1981-04-02',2975,NULL,20),(7654,'MARTIN','SALESMAN',7698,'1981-09-28',1250,1400,30),(7698,'BLAKE','MANAGER',7839,'1981-05-01',2850,NULL,30),(7782,'CLARK','MANAGER',7839,'1981-06-09',2450,NULL,10),(7788,'SCOTT','ANALYST',7566,'1987-07-13',3000,NULL,20),(7839,'KING','PRESIDENT',NULL,'1981-11-17',5000,NULL,10),(7844,'TURNER','SALESMAN',7698,'1981-09-08',1500,0,30),(7876,'ADAMS','CLERK',7788,'1987-07-13',1100,NULL,20),(7900,'JAMES','CLERK',7698,'1981-12-03',950,NULL,30),(7902,'FORD','ANALYST',7566,'1981-12-03',3000,NULL,20),(7934,'MILLER','CLERK',7782,'1982-01-23',1300,NULL,10);ALTER TABLE emp ADD INDEX idx_emp_ename(`ename`);ALTER TABLE emp ADD INDEX idx_emp_deptno(`deptno`);使用explainexplain关键字用于获取SQL语句的执行计划 , 描述的是SQL将以何种方式去执行 , 用法非常简单 , 就是直接加在SQL之前 。explain select * from emp执行结果mysql> explain select * from emp;+----+-------------+-------+------+---------------+------+---------+------+------+-------+| id | select_type | table | type | possible_keys | key| key_len | ref| rows | Extra |+----+-------------+-------+------+---------------+------+---------+------+------+-------+|1 | SIMPLE| emp| ALL| NULL| NULL | NULL| NULL |14 | NULL|+----+-------------+-------+------+---------------+------+---------+------+------+-------+1 row in set (0.01 sec)
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 游戏老斯鸡|李白首次加入,史诗优化二选一,小乔有全皮肤的巨赚!,8号皮肤碎片升值了
- NBA2KOL|NBA2K21操作怎么设置 投篮操作优化设置参考
- 王者荣耀|钟馗全皮优化之后,再次迎来史诗加强,张大仙:赚大了!
- 好六网|头变小拥有大长腿,新拖尾唯美,主页装扮升级,小乔头身比例优化
- 穿搭|衣服买回去经常压箱底?不妨对照这4点,学会扬长避短和优化细节
- IT世界|导致MySQL索引失效的几种常见写法,请看这里
- 优化创新创业环境 西安航空基地企业上云上平台步入快车道
- 电竞大叔OvO|宫本人气仅排第二,钟馗优化自身特效堪比史诗,三位英雄重塑来袭
- 金融业|证监会国际部主任申兵:境内外股票债券市场的互联互通持续优化
- 【】我国服务贸易结构进一步优化 服务贸易成稳定经济预期新支撑
