Re: [討論] select大量資料

看板Database作者 (逍遙盃-佛得)時間10年前 (2015/06/01 02:07), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《bernachom (Terry)》之銘言: : 各位前輩好,請教一下 : 如果有300萬筆資料需要select : ,然後這300萬筆資料,是多個table,join之後才select出來的 : ,那麼,先把部份的select資料,放到data table,再繼續join, : 效能會比較好。 : 還是說,直接join就可以了呢? : 我心理覺的dbms應該會做優化,所以直接join應該就可以了吧? : 但是朋友認為先放到data table再繼續join效能會比較好。 : 我晚點會來做個實驗,手邊沒有安裝資料庫的電腦。 : 想先詢問前輩們的經驗和看法。 : 謝謝指導了 你的意思是, 把中間的join結果, 先實體化到資料庫會不會比較快? %第一次執行 我的看法是不會, 因為SQL Engine有IO最佳化 記憶體不夠Join時, 它也是"暫時"放到cache或磁碟了, 它放得當然比你放得更有效率 %重複執行 如果下次還要再執行同樣的join呢? 理論上那就會比較快, 因為他省略了幾個join, 直接抓取中間的結果 不過如果中間暫存結果, 還存在cache裡面的話, 其實看不出效率差距 要把cache洗掉才看得出差異 講一下自己的看法, 有錯請鞭小力XD -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 130.149.215.36 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1433095636.A.FFB.html
文章代碼(AID): #1LQqtK_x (Database)
討論串 (同標題文章)
文章代碼(AID): #1LQqtK_x (Database)