Re: [SQL ] JOIN TABLE時WHERE的用法會影響效能嗎?
推
06/23 10:27,
06/23 10:27
→
06/23 10:28,
06/23 10:28
→
06/23 10:29,
06/23 10:29
→
06/23 10:29,
06/23 10:29
→
06/23 10:30,
06/23 10:30
→
06/23 10:30,
06/23 10:30
→
06/23 10:30,
06/23 10:30
→
06/23 10:31,
06/23 10:31
→
06/23 10:31,
06/23 10:31
→
06/23 10:33,
06/23 10:33
→
06/23 10:39,
06/23 10:39
推
06/23 13:50,
06/23 13:50
感謝streetbad版友的提醒
目前的寫法大致是如此,
A資料庫有33萬比資料,B大約有10萬比。
兩個資料都有f1,f2這些欄位沒有建索引,經由key欄位關聯。
要搜尋A,B中f1或f2符合val值的資料
而且只顯示B最新的一筆
目前的寫法是如此,大概兩秒左右就能跑出資料了
不過上頭似乎還是覺得有點慢 XD
我用分析工具,有三個時間會比較慢
send data 0.29 sec
send data 0.29 sec 猜測是要UNION兩個資料的sql
send data 0.8 sec 然後這把匯集的資料再SELECT這一段
這種情形應該常見不是很罕見,
猜想應該還會有更好的方法,只是一時還想不太出來啊。
SELECT W.* FROM (
SELECT W.*,O.* FROM W
LEFT JOIN (
SELECT Key,f1,f2,f3 FROM (
SELECT Key,f1,f2,f3 FROM O
WHERE O.Key <> '' AND (O.f1='val' OR O.f2='val')
) as O
Order by O.f3 desc limit 1
) as O
ON W.key = O.key
WHERE W.key <> '' AND (W.f1='val' OR W.f2='val')
UNION
SELECT W.*,O.* FROM W
LEFT JOIN (
SELECT Key,f1,f2,f3 FROM (
SELECT key,f1,f2,f3 FROM O
WHERE O.key <> '' AND (O.f1='val' OR O.f2='val')
) as O
Order by O.f3 desc limit 1
) as O
ON W.key = O.key
WHERE W.key <> '' AND (O.f1='val' OR O.f2='val')
) as W
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.255.152.9
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1466686672.A.A6F.html
推
06/24 00:10, , 1F
06/24 00:10, 1F
→
06/24 00:10, , 2F
06/24 00:10, 2F
推
06/24 00:13, , 3F
06/24 00:13, 3F
→
06/24 00:13, , 4F
06/24 00:13, 4F
→
06/24 00:13, , 5F
06/24 00:13, 5F
討論串 (同標題文章)
Database 近期熱門文章
PTT數位生活區 即時熱門文章