作者ttnan (mik)
看板Database
标题Re: [SQL ] INNER/LEFT JOIN效能比较问题
时间Tue May 15 14:36:31 2012
其实并无所谓的inner join一定比left join快的道理
一般来说inner join会比较快是因为
inner join会直接将两边的PK join起来
避免where condition忘记下的情形,
并可以确保有用到PK (INDEX)
你必须要先做execute plan再来分析
SQL执行的步骤再来看怎样才是最快的
越前面TABLE 若能筛选掉最多资料
执行速度就会越快
※ 引述《omnl ()》之铭言:
: 公司用的DB是Oracle
: 根据以前的记忆(及google的结果) inner join应该效率要比 left join来的好
: 但进目前公司後常遇到一种情况
: 针对SQL条件中的某个table
: 用left join的速度会比inner join快上非常多(可能是上百倍以上)
: (从toad去看execution plan 整个plan只有针对哪张表为inner/outer join的差别)
: 目前会想到的线索可能有两个
: 第一个 join 栏位的值是可能出现null (所以才会想用inner join把它去掉)
: 第二个 join的栏位没有index
: table的资料量约上百万笔
: 我试着用null/index/left/inner 去google找答案
: 一直找不到相关的info
: 不知道有没有前辈 能从前面哪些稀薄的线索帮我找出病徵来 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 139.175.57.74