Mysql
 sql >> Base de données >  >> RDS >> Mysql

Requête SQL bloquée dans l'état des statistiques

J'ai rencontré le même problème récemment:MySQL a commencé à s'étouffer (bloqué dans l'état "statistiques") sur les requêtes avec beaucoup de tables jointes. J'ai trouvé un bon article de blog expliquant pourquoi cela se produit et comment le résoudre.

Fondamentalement au moins dans MySQL 5.5, la valeur par défaut pour le paramètre de configuration optimizer_search_depth est 62, ce qui fait que l'optimiseur de requête prend exponentiellement plus de temps à mesure que le nombre de tables dans la requête augmente. Après un certain point, cela commencera à prendre des jours ou même plus pour terminer la requête.

Cependant, si vous définissez la optimizer_search_depth à 0 dans votre mon.cnf , MySQL choisit automatiquement la profondeur appropriée, mais la limite à 7, ce qui n'est pas encore trop complexe.

Apparemment, ce problème a été corrigé dans MySQL 5.6 mais je ne l'ai pas encore testé moi-même.