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

comprendre mysql expliquer

Paul :

SELECT * FROM ref_table,other_table
WHERE ref_table.key_column=other_table.column;

SELECT * FROM ref_table,other_table
WHERE ref_table.key_column_part1=other_table.column
AND ref_table.key_column_part2=1;
SELECT * FROM ref_table WHERE key_column=expr;

SELECT * FROM ref_table,other_table
WHERE ref_table.key_column=other_table.column;

SELECT * FROM ref_table,other_table
WHERE ref_table.key_column_part1=other_table.column
AND ref_table.key_column_part2=1;

Ceux-ci sont copiés textuellement du manuel MySQL :http:// dev.mysql.com/doc/refman/5.0/en/using-explain.html

Si vous pouviez publier votre requête qui prend une éternité , je pourrais aider à identifier ce qui le ralentit. Veuillez également préciser quelle est votre définition de pour toujours est. Aussi, si vous pouviez fournir votre "SHOW CREATE TABLE xxx;" instructions pour ces tables, je pourrais vous aider à optimiser votre requête autant que possible.

Ce qui me saute immédiatement aux yeux comme un point d'amélioration possible est le "Utilisation temporaire ; Utilisation de filesort ;". Cela signifie qu'une table temporaire a été créée pour satisfaire la requête (ce qui n'est pas nécessairement une mauvaise chose) et que le GROUP BY/ORDER BY que vous avez désigné n'a pas pu être récupéré à partir d'un index, ce qui entraîne un filesort .