[請益] MySQL SELECT 大量不規則條件

作者: nakahusa (NA)   2015-08-10 18:57:16
假設 table 裡有 1000 萬筆資料,每筆資料都有 uniqid,
uniqid 皆為不規則,例如:
uniqid data
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-08-10 19:04:00
(1)開temp table (2)加入所有uniqid (3)join
作者: nakahusa (NA)   2015-08-10 19:30:00
請問除了MOON大的方法還有其他的方式嗎? 因為 db 帳號沒有 create 的權限… = =
作者: sextitanic   2015-08-10 22:41:00
組好要查的內容,where uniqid in (val_1,val_2,...)
作者: DarkKiller (System hacked)   2015-08-11 00:15:00
推 sextitanic 給的方法
作者: nakahusa (NA)   2015-08-11 10:25:00
感謝大家,大概有個底囉
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-08-11 10:32:00
in (...) 最直接 temp table據稱較快 但可能是個迷信
作者: tas72732002 (蔥頭)   2015-08-11 11:24:00
1000萬筆又搭配in想必效率不佳 ~
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-08-11 11:28:00
看做什麼用 如果batch就隨便他
作者: nakahusa (NA)   2015-08-11 13:33:00
如果改 OR 會好點嗎 XDDDWHERE uniqid=val_1 OR uniqid=val_2 …
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-08-11 16:07:00
根據這邊的實驗,不會 http://goo.gl/8KKjuV一說現在參數很多的IN在內部會自動轉用temp table處理(也許可以試拼一個stmt然後用explain看看)
作者: nakahusa (NA)   2015-08-11 17:40:00
嘖嘖… OR 也輸太多 XDDD MOON大有心了! 感恩
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-08-12 10:18:00
IN一直是巨大的迷惑啊 以前每次提到IN 公司的老SA就會露出像便秘的表情說不要寫IN那樣很慢 一直很想充康他
作者: tas72732002 (蔥頭)   2015-08-12 11:58:00
IN 跟 OR 是差不多意思的, 效能都不好
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-08-12 14:48:00
最好是寫一百萬個select會比較好
作者: locklose (允)   2015-08-14 17:02:00
In 會好一點,Or資源沒有重複利用的可能

Links booklink

Contact Us: admin [ a t ] ucptt.com