Jeśli cur_odds
jest rzadko zmieniany, można zaimplementować następujący algorytm:
1) Utwórz kolejną kolumnę prob_sum
, dla których
2) Wygeneruj losową liczbę od 0 do 1:
3) Znajdź pierwszy wiersz, dla którego prob_sum > rnd
(jeśli utworzysz indeks BTREE na prob_sum
zapytanie powinno działać znacznie szybciej):