aleatorizar grandes conjuntos de datos

Estoy tratando de encontrar una manera de obtener una selección aleatoria de un gran conjunto de datos.

Esperamos que el conjunto crezca a ~ 500K registros, por lo que es importante encontrar una forma que siga funcionando bien mientras el conjunto crece.

Probé una técnica de:http://forums.mysql.com/read.php?24,163940,262235#msg-262235 Pero no es exactamente al azar y no funciona bien con unLIMIT cláusula, no siempre obtiene el número de registros que desea.

Entonces pensé que, dado que el PK es auto_increment, solo genero una lista de ID aleatorios y uso una cláusula IN para seleccionar las filas que quiero. El problema con ese enfoque es que a veces necesito un conjunto aleatorio de datos con registros que tienen un estado específico, un estado que se encuentra como máximo en el 5% del conjunto total. Para que eso funcione, primero necesitaría averiguar qué identificación tengopuede use que tenga ese estado específico, por lo que tampoco funcionará.

Estoy usando mysql 5.1.46, motor de almacenamiento MyISAM.
Puede ser importante saber que la consulta para seleccionar las filas aleatorias se ejecutará con mucha frecuencia y la tabla de la que está seleccionando se agrega con frecuencia.

Cualquier ayuda sería muy apreciada!

Respuestas a la pregunta(3)

Su respuesta a la pregunta