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 1Cré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.