Re: [SQL ]請問子查詢的效率
※ 引述《jimshih (傳說中的果汁學長)》之銘言:
: 照推文的建議
: 如果改成
: insert into oocd_breast_cancer
: select oo.* from oo2002 oo, TEST
: where TEST.date between '20020101' and '20021231' and TEST.id =oo2002.id
: 這樣會不會比較快呢?
: 還請原po試看看囉~
再幫忙補充一下 根據這篇答案給的建議
http://stackoverflow.com/questions/6135376
"Never use IN with a subquery; this is notoriously slow.
Only ever use IN with a fixed list of values."
我記得用in subquery的話 subquery會重複跑好幾次(照理來說應該跑一次就好了..)
不過我不確定現在會不會對這個作optimize就是了
不確定的話可以用explain看看 (把insert into oocd_breast_cancer換成explain跑)
這篇query的效率應該比較好
索引的話 Test.date 和 oo2002.id 都建一下應該就OK
: ※ 引述《s9234140 (麻淑菸酒生)》之銘言:
: : 請問若我想新增多筆資料 子查詢為有JOIN的動作
: : 但是動作過久 請問要怎麼血才能優化此查詢 感謝
: : 語法如下
: : insert into oocd_breast_cancer select * from oo2002 where id in
: : ( select TEST.id from TEST, oo2002
: : where TEST.date
: : between 20020101 and 20021231 and TEST.id =oo2002.id)
--
http://blog.carlcarl.tw
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.242.1.198
討論串 (同標題文章)