randomizing großer Datensatz

Ich versuche einen Weg zu finden, um eine zufällige Auswahl aus einem großen Datensatz zu erhalten.

Wir gehen davon aus, dass der Satz auf ~ 500.000 Datensätze anwächst. Daher ist es wichtig, einen Weg zu finden, der eine gute Leistung erzielt, während der Satz wächst.

Ich habe eine Technik ausprobiert:http: //forums.mysql.com/read.php? 24,163940,262235 # msg-262235 Aber es ist nicht gerade zufällig und es spielt sich nicht gut mit einemLIMIT -Klausel, Sie erhalten nicht immer die Anzahl der gewünschten Datensätze.

Also dachte ich, da die PK auto_increment ist, erstelle ich eine Liste von zufälligen IDs und benutze eine IN-Klausel, um die gewünschten Zeilen auszuwählen. Das Problem bei diesem Ansatz ist, dass ich manchmal einen zufälligen Datensatz mit Datensätzen mit einem spezifischen Status benötige, der in höchstens 5% des gesamten Datensatzes enthalten ist. Damit das funktioniert, müsste ich zuerst herausfinden, welche IDs ich bkönne benutze, die diesen spezifischen Status haben, also wird das auch nicht funktionieren.

Ich verwende mysql 5.1.46, MyISAM Storage Engine.
Es ist möglicherweise wichtig zu wissen, dass die Abfrage zur Auswahl der zufälligen Zeilen sehr häufig ausgeführt wird und die Tabelle, aus der sie ausgewählt wird, häufig angehängt wird.

Jede Hilfe wäre sehr dankbar!

Antworten auf die Frage(6)

Ihre Antwort auf die Frage