2015-12-16 21 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

相關問題