[討論] 資料表Join的效能差異
各位大大好:
假設2個資料表A和資料表B的資料量都很大(就假設都100萬筆好了)
那在做Join的時候一定會非常耗時和耗資源
一般我們在下查詢時普遍都會這樣寫
SELECT A.name B.salary FROM A LEFT JOIN B on A.id = B.id WHERE A.age >='20';
那如果先將A資料表查詢完成
SELECT name, id FROM A WHERE age >= '20';
再以程式迴圈方式查詢B資料表(假設A資料表查詢完有20筆,那B資料表就要查詢20次)
SELECT salary FROM B WHERE id='A.id'; //A.id是上面A資料表查詢出來的欄位資料
最後再把2個資料合併起來(這裡有點偏程式端了)
效能會比較快嗎?
在此先感謝各位!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.223.105
※ 文章網址: http://www.ptt.cc/bbs/Database/M.1401263152.A.530.html
推
05/30 19:44, , 1F
05/30 19:44, 1F
我的資料庫中有設索引呢,不過還是慢慢的...也有可能是Server不太給力啦
推
05/31 15:29, , 2F
05/31 15:29, 2F
→
05/31 15:29, , 3F
05/31 15:29, 3F
okay!我等等就試看看!
→
05/31 22:42, , 4F
05/31 22:42, 4F
Temp table好像要進網頁後才執行,我的首頁也是因為Query很慢所以第一次會等很久...
所以才在找看看有沒有方法提高Query的效能
※ 編輯: Prestense (220.133.223.105), 06/03/2014 10:37:50
→
06/05 01:21, , 5F
06/05 01:21, 5F
→
06/05 01:28, , 6F
06/05 01:28, 6F
→
06/05 01:30, , 7F
06/05 01:30, 7F
→
06/05 01:30, , 8F
06/05 01:30, 8F