Самый быстрый случайный выбор ГДЕ столбец X - Y (NULL)
В настоящее время я использую:
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
Это обычно очень быстро, однако, когда я включаю выделенное column_x, являющееся условием Y (null), оно становится медленным.
Какое было бы самое быстрое решение для случайных запросов, когда записи & apos; столбец X равен нулю?
ID - это PK, столбец X - это int (4). Таблица содержит около миллиона записей и более 1 ГБ в общем объеме, удваивающемся каждые 24 часа.
column_x индексируется.
Идентификатор столбца не может быть последовательным.
Используемый в этом случае механизм БД - InnoDB.
Спасибо.