0
我運行此查詢5次5秒分開,對50萬行的表:有沒有辦法比ORDER BY RAND減少隨機增加速度?
SELECT * FROM `apps` WHERE dev_name = '' ORDER BY RAND() LIMIT 10;
我想獲得50行具有的是唯一一個90-95%的機會。查詢現在需要10秒鐘。我寧願把它降低,並且隨機抽取的機會也更小。
我運行此查詢5次5秒分開,對50萬行的表:有沒有辦法比ORDER BY RAND減少隨機增加速度?
SELECT * FROM `apps` WHERE dev_name = '' ORDER BY RAND() LIMIT 10;
我想獲得50行具有的是唯一一個90-95%的機會。查詢現在需要10秒鐘。我寧願把它降低,並且隨機抽取的機會也更小。
您的WHERE子句中嘗試
AND RAND() >= 0.90
(或0.95,如果你喜歡)。
您可能想要學習Fetching Random Rows from a Table,如here in a related question中突出顯示。另一篇偉大的文章可以在here找到。
這會比'ORDER BY RAND'快嗎? – User
是的,但不是很隨意。在桌子的自然順序中獲得退後的機會非常小。 – luksch
@luksch爲什麼?它應該選擇具有相同概率的任何行。 – EJP