作者nickl763 (Nick)
看板Database
标题Re: [SQL ] INNER/LEFT JOIN效能比较问题
时间Fri May 25 08:45:07 2012
execution 中的inner&outer,
不是指inner join&outer join,
而是表示采用nestloop时,
table存取之先後顺序.
※ 引述《ttnan (mik)》之铭言:
: 其实并无所谓的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: 221.120.4.117