关于Join
如上图所示,left join和inner join的取值范围还是有很明显的不同的,看网上不少文章优化left join也不交代上下文环境,直接就是教唆把left join换成inner join,只能说是章口就莱,文体两开花...
关于笛卡尔积
简言之就是强拼,不带条件的硬拼2(多)张表,结果就是直接做乘法
SELECT * FROM a CROSS JOIN b;
SELECT * FROM a INNER JOIN b;
SELECT * FROM a,b;
SELECT * FROM a NATURE JOIN b;
SELECT * FROM a NATURA join b;
如何判断驱动表
如果没有where条件
左连接,如果没有where条件,则左表为驱动表
右连接,如果没有where条件,右表为驱动表
如果有where条件
(参照《数据库索引设计与优化》第8章内容对外表的判定应该是下面写的这个样子)
(参考读书笔记:索引读书笔记)
但是实际操作中有本地谓词的表并不一定百分百的是外表,而是由优化器来判断的
#个人实际优化过程中用的最多的还是下面这条
explain规则:explain语句结果中&#x