Jeśli nie masz nic przeciwko poświęcaniu złożoności operacji wstawiania/aktualizacji/usuwania w celu zwiększenia szybkości wybierania, zawsze możesz dodać numer kolejny i upewnić się, że jest on zachowywany podczas wstawiania/aktualizowania/usuwania, a za każdym razem, gdy dokonasz wyboru, po prostu wybierz na jedną lub więcej liczb losowych z tego zakresu. Jeśli kolumna „sekwencja” jest indeksowana, myślę, że jest to mniej więcej tak szybko, jak to możliwe.
Alternatywą jest tasowanie. Dodaj kolumnę sekwencji, wstaw wartości losowe do tej kolumny i za każdym razem, gdy wybierzesz rekordy, uporządkuj według kolumny sekwencji i zaktualizuj wybrane sekwencje rekordów do nowych wartości losowych. Aktualizacja powinna dotyczyć tylko pobranych rekordów, więc nie powinna być zbyt kosztowna... ale warto przeprowadzić kilka testów na zestawie danych.
Może to być dość zła rzecz do powiedzenia, ale i tak to powiem ... czy istnieje potrzeba wyświetlania „losowych” danych? jeśli próbujesz wyświetlić losowe rekordy, możesz robić coś źle.
Pomyśl o Amazonie… czy wyświetlają losowe produkty, czy te popularne i „rzeczy, które inni ludzie kupili, kiedy na to spojrzeli”. Czy SO daje ci listę losowych pytań po prawej stronie, czy listę powiązanych? Tylko trochę do myślenia.