web-dev-qa-db-fra.com

MySQL explique la compréhension des requêtes

J'ai lu sur certains blogs et dans certains articles liés à l'optimisation, comment optimiser les requêtes. J'ai lu que je dois utiliser des index et m'assurer que toutes mes clés primaires et clés étrangères sont définies correctement en utilisant un bon schéma de base de données relationnelle.

Maintenant, j'ai une requête que je dois optimiser et je l'obtiens sur le EXPLAIN:

Using where; Using temporary; Using filesort

J'utilise MySQL 5.5

Je sais que j'utilise WHERE mais pas avec ma table temporaire ni le tri de fichiers? Qu'est-ce que ça veut dire?

49
Ken

L'utilisation temporaire signifie que MySQL doit utiliser des tables temporaires pour stocker des données intermédiaires calculées lors de l'exécution de votre requête.

L'utilisation de filesort est un algorithme de tri dans lequel MySQL n'est pas en mesure d'utiliser un index pour le tri et ne peut donc pas effectuer le tri complet en mémoire. Au lieu de cela, il divise le tri en petits morceaux, puis fusionne les résultats pour obtenir les données triées finales.

Veuillez vous référer à http://dev.mysql.com/doc/refman/5.0/en/explain-output.html .

Je pense que vous utilisez peut-être un ORDER BY plus une table dérivée ou une sous-requête. Ce serait formidable si vous pouviez coller votre requête et les informations pertinentes sur les tables/index et la sortie EXPLAIN.

35
Abhay

Syntaxe:

Explain `MySQL Query`

Exemple: EXPLAIN SELECT * FROM categoriesG

Exemple: EXPLAIN EXTENDED SELECT City.Name FROM City JOIN Country ON (City.CountryCode = Country.Code) WHERE City.CountryCode = 'IND' AND Country.Continent = 'Asia'G

Expliquez suivi de votre requête mysql

mieux expliqué en détail ici

8
Aditya P Bhatt