php - L'opération de mise à jour de MySQL est lente, comment le résoudre
仅有的幸福
仅有的幸福 2017-05-16 13:07:09
0
2
590

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;Les transactions ont été activées pour l'optimisation. Il est temps, mais cela semble encore trop lent. Il faut 3 minutes pour mettre à jour 30 000 articles.
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. . .

仅有的幸福
仅有的幸福

répondre à tous(2)
我想大声告诉你

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

.
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal