1
Y at-il de toute façon d'optimiser la requête suivante:MySQL sous-requête SOMME() corrélée ORDER BY
SELECT
t1.id,
(SELECT SUM(col1) FROM table_name_two t2 WHERE t2.name LIKE CONCAT('%',t1.name)) AS col1_count
FROM
table_name_one t1
ORDER BY
col1_count DESC
L'utilisation ORDER BY col1_count DESC
prend beaucoup de temps.
Merci.
SubQueries sont très lents, je ne les recommanderais pas. Pouvez-vous quitter ces tables? –
Votre match wildcard va vous tuer. Un caractère générique à l'avant de la chaîne est incapable d'utiliser un index de sorte qu'il effectuera un balayage de table pour trouver chaque correspondance. Et il n'y a rien que vous puissiez faire pour le réparer si vous ne modifiez pas vos données pour mettre les parties correspondantes des chaînes sur le devant. – dkretz
@ BookOfZeus: "SubQueries sont très lents" --- Je ne dirais jamais de cette façon. Il y a des cas où les sous-requêtes sont meilleures que les jointures. – zerkms