Vous devriez consulter les journaux d'erreurs de MySQL.
Si vous n'avez pas accès à la machine (hébergement, etc.), vous pouvez demander à votre administrateur ou votre service d'assistance pour ce journal.
MySQL prend en charge de très grandes requêtes. Je ne sais pas s'il y a une limite, mais lorsque vous utilisez le réseau - vous pouvez avoir un problème avec taille de paquet.
Vous pouvez vérifier --max_allowed_packet
dans la configuration de MySQL, et essayer de définir une plus grande taille de paquet. Je ne suis pas sûr de la configuration par défaut, mais il peut s'agir de 1 Mo, ce qui peut être une valeur trop faible pour obtenir une requête avec 7 000 mises à jour à la fois. MySQL peut avoir besoin de plus de RAM pour traiter une requête comme celle-ci.
Si vous ne pouvez pas reconfigurer MySQL, vous devez scinder votre grande requête en requêtes plus petites.
Vous pouvez également lire pour plus d'informations:
devshed - MySQL server has gone away
Vous avez demandé:
Toute possibilité d'exécuter plusieurs requêtes encore plus rapide?
Il n'y a pas de réponse simple à cette question.
Augmenter la taille du cache MySQL dans le fichier de configuration peut aider beaucoup dans la plupart des cas avec de grandes mises à jour simples avec peu de calcul, car le moteur de base de données fonctionne sur la mémoire RAM, pas sur le disque dur . Lorsque le grand cache est utilisé - parfois la première grande requête peut être plus lente, car les données ne sont pas encore chargées dans la RAM, mais quand elles sont finalement chargées - les requêtes nécessitant beaucoup d'opérations de lecture/écriture fonctionneront beaucoup plus rapidement.
ajouté plus tard: Je suppose que votre traitement de données a besoin fonction php deserialize() qui peut être difficile à mettre en œuvre dans SQL pur et vous devez le faire en PHP :) Si vous avez accès à la console du serveur, vous pouvez créer cron (linux sheduler) job, qui appelle le script PHP du shell pendant la nuit.
Ajouté plus tard plus tard Après discussion dans les commentaires, j'ai une idée de plus. Vous pouvez effectuer une sauvegarde complète de la base de données ou d'une table à partir de phpmyadmin, la télécharger, restaurer les données sur l'ordinateur personnel (sous Windows, vous pouvez utiliser XAMPP, serveur WAMP). Sur votre ordinateur personnel, vous pouvez exécuter mysql.exe et traiter les données localement.
Je pense que ce n'est pas la longueur de la chaîne, mais le temps nécessaire pour exécuter toutes les instructions. – GolezTrol
Si je l'exécute dans phpmyadmin il s'exécute en 3 secondes –
Veuillez lire à nouveau ma réponse. J'ai ajouté quelque chose sur "plusieurs requêtes encore plus vite" après avoir accepté mon message. – Kamil