Re: [SQL ] INNER/LEFT JOIN效能比較問題

看板Database作者 (mik)時間13年前 (2012/05/15 14:36), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
其實並無所謂的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
文章代碼(AID): #1FiVbo9m (Database)
文章代碼(AID): #1FiVbo9m (Database)