https://blog.csdn.net/CSDN_FlyYoung/article/details/123072418
MySQL性能优化_小表驱动大表
1. 什么是小表驱动大表 ?
2. 为什么要用小表驱动大表 ?
类似循环嵌套
for(int i=5;.......)
{
for(int j=1000;......)
{}
}
12345
如果小的循环在外层,对于数据库连接来说就只连接5次,进行5000次操作;如果1000在外,则需要进行1000次数据库连接,从而浪费资源,增加消耗。这就是为什么要小表驱动大表。
3. 用法
join
MySQL高级知识(五)——索引分析
mysql leftjoin 大表在外_小表驱动大表
in 与 exists
MySQL高级知识(十六)——小表驱动大表
MySQL关联查询时,我们为什么建议小表驱动大表?
Mysql优化原则_小表驱动大表IN和EXISTS的合理利用
数据准备
案例演示
当B表的数据集小于A表数据集时,用in优于exists。
当A表的数据集小于B表的数据集时,用exists优于in。
结论
in后面跟的是小表,exists后面跟的是大表(in 小, exists 大)
1) 当B表数据集小于A表数据集时,用in优于exists。
select *from tb_emp_bigdata A where A.deptno in (select B.deptno from tb_dept_bigdata B)
1
2) 当A表数据集小于B表数据集时,用exists优于in。
select *from tb_dept_bigdata A where A.deptno in(select B.deptno from tb_emp_bigdata B);
1