Schnellste zufällige Auswahl WO Spalte X ist Y (NULL)

Zur Zeit benutze ich:

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

Dies ist normalerweise extrem schnell, aber wenn ich die hervorgehobene Bedingung column_x als Y (null) einbeziehe, wird sie langsam.

Was wäre die schnellste zufällige Abfragelösung, wenn die Spalte X der Datensätze null ist?

ID ist PK, Spalte X ist int (4). Die Tabelle enthält ungefähr eine Million Datensätze und eine Gesamtgröße von über 1 GB, die sich derzeit alle 24 Stunden verdoppelt.

column_x ist indiziert.

Die Spalten-ID darf nicht fortlaufend sein.

Die in diesem Fall verwendete DB-Engine ist InnoDB.

Vielen Dank.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage