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):