Je suis en aidant à maintenir un programme qui est essentiellement une sympathique lecture seule front-end pour un grand complexe de base de données MySQL -- le programme s'appuie ad-hoc de SÉLECTIONNER les requêtes des utilisateurs' entrée, envoie des requêtes à la DB, obtient les résultats, post-processus, et les affiche bien à l'utilisateur.
Je tiens à ajouter une certaine forme de raisonnable/heuristique de prédiction pour la construction de la requête de performance attendus, parfois les utilisateurs, par inadvertance, d'effectuer des requêtes qui vont inévitablement se prendre un temps très long (parce qu'ils vont revenir d'énormes ensembles de résultats, ou parce qu'ils sont "contre-courant" de la façon la DB est indexé) et je voudrais être en mesure de présenter à l'utilisateur une certaine "peu fiable" information/deviner combien de temps la requête va prendre. Il n'a pas à être parfait, tant qu'il n'est pas si mal et souvent collent pas avec la réalité à cause d'un "cry wolf" effet où les utilisateurs à apprendre à les ignorer;-) Basé sur cette information, un utilisateur peut décider d'aller prendre un café (si l'estimation est de 5 à 10 minutes), aller pour le déjeuner (si c'est 30 à 60 minutes), de tuer la requête et d'essayer quelque chose d'autre à la place (peut-être à des limites plus rigoureuses sur l'info qu'ils sont de demander), etc, etc.
Je ne suis pas très familier avec MySQL EXPLIQUER déclaration, je vois que beaucoup d'informations sur la façon de l'utiliser pour optimiser une requête ou d'une DB du schéma, indexation, etc, mais pas beaucoup sur la façon de l'utiliser pour mon plus limitée but -- simplement faire une prédiction, en prenant la DB comme une donnée (bien sûr, si les prédictions sont assez fiable je peut éventuellement passer à l'aide aussi à choisir entre des formes alternatives d'une requête pourrait prendre, mais c'est pour l'avenir: pour l'instant, je serais beaucoup heureux juste pour montrer les performances d'estimation pour les utilisateurs pour les fins mentionnées ci-dessus).
Tous les pointeurs...?