Maison >base de données >tutoriel mysql >Raisons pour lesquelles une instruction SQL devient extrêmement lente et comment la résoudre

Raisons pour lesquelles une instruction SQL devient extrêmement lente et comment la résoudre

黄舟
黄舟original
2017-02-20 11:38:131672parcourir

[Introduction] Phénomène : Un SQL s'exécute soudainement très lentement. select uidTable column_value, first_name|| ||last_name, company, job_title, upper(member_level), upper(service_value)from (select * from table(select c

Phénomènes : un SQL s'exécute soudainement très lentement.




Cause de l'erreur : L'utilisateur a ajouté une condition member.site= test, l'ordre de connexion a changé. La table du pilote d'origine est uidTable (jusqu'à 1024 enregistrements), et maintenant elle est pilotée par la table membre (600W enregistrements), donc cette instruction devient extrêmement lente

.
Mais puisqu'il s'agit d'une connexion externe, pourquoi l'ordre des connexions change-t-il ? Car l'ordre de connexion des connexions externes n'est pas déterminé par le COÛT, mais par les conditions de la connexion. Le plan d'exécution se retrouve comme suit :





Pourquoi pas du tout ? Que se passe-t-il si la connexion externe n'est pas exécutée ? Le problème réside dans la condition member.site='test'. Parce que la condition est ajoutée à la table de connexion externe, la connexion externe devient invalide après avoir été modifiée en member.site()=. 'test', le problème est complètement résolu.

Ce qui précède est la raison pour laquelle une instruction SQL devient extrêmement lente et sa solution. Pour plus de contenu connexe, veuillez prêter attention au site Web PHP chinois (www.php). .cn) !>

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn