Самый быстрый случайный выбор ГДЕ столбец 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.

Спасибо.

Ответы на вопрос(4)

Ваш ответ на вопрос