当前位置:首页 > 第8页

101 透彻研究通过explain命令得到的SQL执行计划(2)

CarlZhou3年前 (2021-05-11)916
今天我们就一步一步的来讲解不同的SQL语句的执行计划长什么样子,先来看第一条SQL语句,特别的简单,就是: explain select * from t1 就这么一个简单的SQL语句,那么假设他这个里面有大概几千条数据,此时执行计划看起来...

100 透彻研究通过explain命令得到的SQL执行计划(1)

CarlZhou3年前 (2021-05-11)896
今天我们正式进入研究explain命令得到的SQL执行计划的内容了,只要把explain分析得到的SQL执行计划都研究透彻,完全能看懂,知道每个执行计划在底层是怎么执行的,那么后面学习SQL语句的调优就非常容易了。 首先,我们现在应该都知道...

99 MySQL是如何基于各种规则去优化执行计划的?(下)

CarlZhou3年前 (2021-05-11)849
天我们来给大家讲解MySQL里对子查询的执行计划进行优化的一种方式,就是semi join,也就是半连接 这个半连接是什么意思呢,其实就是假设你有一个子查询语句:select * from t1 where x1 in (select x2...

98 MySQL是如何基于各种规则去优化执行计划的?(中)

CarlZhou3年前 (2021-05-11)849
今天我们来讲一下子查询是如何执行的,以及他的执行计划是如何优化的。比如说类似于下面的SQL语句: select * from t1 where x1 = (select x1 from t2 where id=xxx) 这就是一个典型的子查...

97 MySQL是如何基于各种规则去优化执行计划的?(上)

CarlZhou3年前 (2021-05-11)835
之前我们已经给大家讲解了单表查询语句和多表关联语句具体的执行原理,同时也给大家讲了在生成具体执行计划的时候,是如何根据成本计算去选择最优执行计划的,因为每个查询执行的时候实际都可能有多种执行计划可供选择,必须要选择成本最低的那种。 接着我们...

96 MySQL是如何根据成本优化选择执行计划的?(下)

CarlZhou3年前 (2021-05-09)791
今天是我们讲解根据成本优化选择执行计划的最后一讲,下周就要给大家讲解基于规则的执行计划优化了,也就是MySQL是如何自动调整我们的SQL语句为性能比较优化的方式,好,那今天一起看看多表关联查询是如何选择执行计划的。 其实多表查询的执行计划选...

95 MySQL是如何根据成本优化选择执行计划的?(中)

CarlZhou3年前 (2021-05-09)806
上次我们讲完了全表扫描的成本计算方法,相信大家应该都理解了,其实还是比较简单的,今天我们来讲一下索引的成本计算方法,因为除了全表扫描之外,还可能多个索引都可以使用,但是当然同时一般只能用一个索引,所以不同索引的使用成本都得计算一下。 这个使...

94 MySQL是如何根据成本优化选择执行计划的?(上)

CarlZhou3年前 (2021-05-09)1175
之前已经给大家讲解清楚了 MySQL 在执行单表查询时候的一些执行计划,比如说const、ref、range、index、all之类的,也讲了多表关联的时候是如何执行的,本质其实就是先查一个驱动表,接着根据连接条件去被驱动表里循环查询,现在...

93 深入探索多表关联的SQL语句到底是如何执行的?(3)

CarlZhou3年前 (2021-05-09)925
93 深入探索多表关联的SQL语句到底是如何执行的?(3)
之前我们把连接的基本语义和基本原理讲了一下,今天开始正式来深入探索一下SQL关联语法的实现原理 首先,先给大家提出一个名词叫做:嵌套循环关联(nested-loop join),这其实就是我们之前给大家提到的最基础的关联执行原理。 简单来说...

92 深入探索多表关联的SQL语句到底是如何执行的?(2)

CarlZhou3年前 (2021-05-09)3842
今天我们来继续跟大家聊聊多表关联语句是如何执行的这个问题,上次讲了一个最最基础的两个表关联的语句和执行过程,其实今天我们稍微来复习一下,然后接着上次的内容,引入一个“内连接”的概念来。 假设我们有一个员工表,还有一个产品销售业绩表,员工表里...