SQL等价改写核心思想概述;;1;1:1 关系
两表关联返回1的关系,常见于对表做垂直拆分之后的两表关联(主键关联)
1:N 关系
两表关联返回N的关系
最常见的应用,比如一个商品(1)对应多个订单(N)
N:N 关系
两表关联返回局部范围笛卡尔积,常见于半连接和反连接中(in,exists/not in,not exists);select count(*) from a left join b on a.id=b.id;
某运营商,2012年,Oracle10gR2
a:b是1:1关系,a和b都是上千万条数据,原始SQL要跑12秒
因为是left join,不管a和b是否能关联上,都会返回a的所有数据,b属于1的关系 不管有没有关联上,不影响最终count(*)的结果,所以SQL被改写为:
select count(*) from a;
最终0.05秒就能返回结果
其实,只要b是1的关系,不管a是属于1的关系还是N的关系,都能这样改写
注:到了Oracle11g之后,CBO会自动改写上面SQL;1;;select * from dept where deptno in (select deptno from emp);
dept与emp是1:N关系,上面查询只返回dept表的数据,也就是说返回的是1的关系
将上面查询改写为内连接的时候,可以将emp变成1的关系,再与dept关联
您可能关注的文档
最近下载
- 53 ESD-TR53-01-22-ESD控制项符合性验证【廷军自译请勿转发】.pdf
- 英威腾GD350A高性能通用变频器(中文)V2.0.pdf VIP
- 从秦汉小篆看摹印篆的产生与发展.pdf VIP
- 高中语文(统编版必修上册)第二单元考点梳理课件.pptx
- 费用报销审核作业指导书.docx
- 新版2026秋人教版道德与法治(2024)九年级上册全册教案教学设计.docx
- FeNO呼吸分析仪,前8大企业占据全球92%的市场份额(2026).docx
- 历史课件 世界近现代史01 世界近代史 导言 世界近现代史.ppt VIP
- 企业研究开发管理制度.docx
- 2026年爆款AI漫剧教学手册.pdf VIP
原创力文档

文档评论(0)