Tout d'abord, tous génèrent une valeur aléatoire de 1 à MAX(id), et non 100000000.
Ensuite, il existe au moins deux bonnes solutions :
-
Utilisez
>
pas=
SELECT items FROM tablea where status='0' and id>'$id23' LIMIT 1
Créer un index sur
(status,id,items)
pour en faire une requête d'index uniquement. -
Utilisez
=
, mais réessayez simplement avec une valeur aléatoire différente si vous ne trouvez pas de réponse. Parfois, il faudra plusieurs essais, mais souvent il ne faudra qu'un seul essai. Le=
devrait être plus rapide car il peut utiliser la clé primaire. Et s'il est plus rapide et réussit en un seul essai 90% du temps, cela pourrait compenser les 10% restants du temps où il faut plus d'un essai. Cela dépend du nombre d'écarts que vous avez dans vos valeurs d'identifiant.