Comment optimiser ces requêtes MySQL accédant à deux tables de plus de 10 millions de lignes chacune?Accéder aux tables MySQL avec plus de 10 millions de lignes = Erreur: trop de connexions
Ce que fait la requête ci-dessous, c'est qu'elle récupère tous les identifiants de la table 'users' qui n'existe pas dans la table 'guests'. Cela retournera plus de centaines de milliers de lignes, donc nous limitons cela à au moins 5000 ID par exécution. Y a-t-il une meilleure façon d'exécuter ceci afin que nous puissions en faire plus par course. Après avoir identifié les ID qui n'existent pas dans la table des invités, nous devons supprimer ces lignes dans la table des utilisateurs. Cela signifie donc qu'il exécutera 5000 autres requêtes de suppression pour supprimer tous ces ID. Si nous exécutons ce processus avec deux tables contenant plus de 10 millions de lignes de données, notre serveur renvoie une erreur indiquant qu'il a trop de connexions et que le serveur MySQL n'est plus accessible tant que vous ne le redémarrez pas. Mais si nous exécutons le même processus avec les deux tables contenant plus de quelques milliers de lignes, il ne rencontre pas ce problème, mais cela prend encore un certain temps. Pourquoi cela se produit-il et comment pouvons-nous éviter cela tout en optimisant ce processus?
Il n'utilise pas de connexion persistante. Ce qui me tracasse, c'est que dans la liste des processus pour MySQL, il y a beaucoup de requêtes SELECT après ma requête SQL principale publiée ci-dessus. Ces requêtes select sélectionnent les ID dans la table des invités. Est-ce que LEFT JOIN ou une instruction JOIN fait une requête de sous-sélection? Est-il possible que LEFT JOIN provoque l'erreur "too many connection"? – officeboi101
@officeboi - non, ce ne serait pas possible. Quel logiciel/langage/bibliothèque utilisez-vous pour cela? Il se peut que votre bibliothèque récupère des informations supplémentaires via des sélections séparées ... Et il se peut que la même bibliothèque provoque des connexions supplémentaires ... – Sergey