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.