[请益] 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