Zunächst generieren alle einen Zufallswert von 1 bis MAX(id), nicht 100000000.
Dann gibt es zumindest ein paar gute Lösungen:
-
Verwenden Sie
>
nicht=
SELECT items FROM tablea where status='0' and id>'$id23' LIMIT 1
Erstellen Sie einen Index für
(status,id,items)
um dies zu einer Nur-Index-Abfrage zu machen. -
Verwenden Sie
=
, aber versuchen Sie es einfach erneut mit einem anderen Zufallswert, wenn Sie keinen Treffer finden. Manchmal braucht es mehrere Versuche, oft aber auch nur einen Versuch. Der=
sollte schneller sein, da es den Primärschlüssel verwenden kann. Und wenn es schneller ist und es in 90 % der Fälle in einem Versuch schafft, könnte das die anderen 10 % der Zeit wettmachen, wenn es mehr als einen Versuch braucht. Hängt davon ab, wie viele Lücken Sie in Ihren ID-Werten haben.