Ich habe eine simple tabelle
id (primary)
word (char varying 30) (uniqe index)
mit etwa 8 Millionen Einträgen.
Nun möchte ich daraus einen zufälligen Eintrag wählen.
Ich habs zunächst versucht
SELECT id,word FROM WORDS OFFSET RANDOM() LIMIT 1;
- das dauert Ewigkeiten.
Meine Lösung ist aktuell ein
$offset=int(rand(8000000))+1;
$query=“select id,word from words offset $offset limit 1”;
Auch das dauert aber einige Sekunden, in denen die Prozessorlast des DB-Servers massiv in die Höhe schnellt. Wenn da nun etwa 20 Tasks gleichzeitig laufen, ist der Server quasi tot.
Hat jemand eine Idee, wie ich ohne grosse Prozessorlast schnell einen einigermassen zufällig ausgewählten Record aus der Tabelle kriege?
Thomas