2015-12-16 20 views
0

我运行此查询5次5秒分开,对50万行的表:有没有办法比ORDER BY RAND减少随机增加速度?

SELECT * FROM `apps` WHERE dev_name = '' ORDER BY RAND() LIMIT 10; 

我想获得50行具有的是唯一一个90-95%的机会。查询现在需要10秒钟。我宁愿把它降低,并且随机抽取的机会也更小。

回答

0

您的WHERE子句中尝试

AND RAND() >= 0.90 

(或0.95,如果你喜欢)。

+0

这会比'ORDER BY RAND'快吗? – User

+0

是的,但不是很随意。在桌子的自然顺序中获得退后的机会非常小。 – luksch

+0

@luksch为什么?它应该选择具有相同概率的任何行。 – EJP

相关问题