我建立一個網站,我需要從數據庫中選擇隨機加權記錄 。大數據庫快速mysql隨機加權選擇
還有就是代碼SQL : select one row randomly, but taking into account a weight
SELECT t.*, RAND() * t.weight AS w
FROM table t
ORDER BY w DESC
LIMIT 1
它適用於記錄小樣本罰款文檔片斷。
嘗試接近100萬條記錄時,它在本地機器上變慢(1.3 - 1.8秒) ,我想我會在更大的機器上花費更長的時間。
它如何優化? 有沒有更好的方法隨機選擇加權記錄?
我的嘗試是定期計算權重,將它們存儲在單獨的表中,選擇隨機數programmaticaly並搜索最接近該記錄的記錄。