摘要:
小表驱动大表为了减少匹配时的数据量
判断谁做小表时,是比较算上过滤条件后的数量
left join时手动设置小表驱动大表
inner join时优化器会自动小表驱动大表
course–100条数据
student_info–100w条数据
优化器会选择小表驱动大表(这里表指的是结果集)
EXPLAIN SELECT a.*,b.* FROM coursea JOINstudent_info b ON a.course_id=b.course_id``

加上过滤student_info的条件
EXPLAIN
SELECT a.*,b.* FROM `course` a JOIN `student_info` b ON a.`course_id`=b.`course_id` WHERE b.`student_id`=1
执行计划改变,由小表student_info驱动大表course,得出优化器先走where后join的结论。

论证:查看优化器执行(只截取from后的内容)
from atguigudb1.course a join atguigudb1.student_info b where ((atguigudb1.a.course_id = atguigudb1.b.course_id) and (atguigudb1.b.student_id = 1))



















