La base de données a une table d'éléments, et nous devons maintenant y mettre à jour le champ ID utilisateur.
L'instruction est UPDATE items SET userid = xxx WHERE userid = 0 limit 1;
Essayez de créer une table temporaire le matin, enregistrez le tableau userid->items, puis écrivez un script php pour interroger en continu la table temporaire, puis exploitez.
Mais lorsque plusieurs scripts sont exécutés de cette manière, un seul peut survivre... et l'effet de surveillance ne peut pas être obtenu.
L'idée actuelle est de diviser l'opération de mise à jour en suppression et insertion.. Essayer maintenant
De plus, je voudrais demander, si vous développez PHP, quelle file d'attente de messages est préférable d'utiliser ? Je ne trouve pas la documentation de la version PHP de Rabbitmq. . .
Vous pouvez utiliser Remplacer dans au lieu de mettre à jour, ou vous pouvez utiliser insérer dans... lors de la mise à jour de clé en double pour mettre à jour par lots.
De plus, une démo de la version PHP Rabbitmq est jointe :
https://github.com/yuansir/ra...
Utilisez Redis comme file d'attente. Ceci est généralement utilisé. Votre SQL est probablement lent à cause de la limite. Essayez de supprimer les identifiants de toutes les données à mettre à jour, puis mettez-les à jour. Ce sera bien mieux
.