Selección aleatoria más rápida DONDE la columna X es Y (NULL)
Actualmente estoy usando:
SELECT *
FROM
table AS t1
JOIN (
SELECT (RAND() * (SELECT MAX(id) FROM table where column_x is null)) AS id
) AS t2
WHERE
t1.id >= t2.id
and column_x is null
ORDER BY t1.id ASC
LIMIT 1
Esto suele ser extremadamente rápido, sin embargo, cuando incluyo la columna resaltada_x como condición Y (nula), se vuelve lenta.
¿Cuál sería la solución de consulta aleatoria más rápida donde la columna X de los registros es nula?
ID es PK, la columna X es int (4). La tabla contiene aproximadamente un millón de registros y más de 1 GB de tamaño total que se duplica cada 24 horas actualmente.
column_x está indexado.
La ID de columna no puede ser consecutiva.
El motor DB usado en este caso es InnoDB.
Gracias.