Je profile une application web, en essayant de réduire les retards inutiles sur les requêtes et j'en ai trouvé un qui semble être simple, mais prendre beaucoup de temps pour l'exécution.Coincé avec optimisation sur MySql, en utilisant temporaire, en utilisant le tri de fichiers ... messages sur EXPLAIN
En utilisant EXPLIQUER je reçois les messages suivants:
Using where; Using temporary; Using filesort
C'est la requête:
SELECT `bt`.`id_brand`
FROM `brands_translation` AS `bt`
WHERE bt.code_language = 'es'
GROUP BY `bt`.`id_brand`
ORDER BY `bt`.`name` ASC
Et la définition de table:
CREATE TABLE IF NOT EXISTS `brands_translation` (
`id_brand` int(64) unsigned NOT NULL,
`code_language` varchar(3) NOT NULL,
`name` varchar(128) NOT NULL,
`link` varchar(255) default NULL,
`logo` varchar(255) default NULL,
`description` text NOT NULL,
KEY `id_brand` (`id_brand`),
KEY `code_language` (`code_language`),
KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
je tente de résoudre la création d'index pour chaque domaine impliqué sans résultat.
Une idée avec ça?
Merci à l'avance
Merci pour votre réponse! Cela ouvre de nouvelles voies à la solution. La chose est que j'essaie de trier par nom, et dans cet exemple, l'ordre est fait par id_brand en premier. –