je sur la table des produits de l'indice suivant: (product_t, ProductID, forsale). Le manuel MySQL dit:groupe par Ralentit la requête
Les GROUP BY désignent uniquement les colonnes qui forment un préfixe à gauche de l'index et pas d'autres colonnes. http://dev.mysql.com/doc/refman/5.0/en/group-by-optimization.html
Quand je fais la requête suivante
SELECT z.product_t, COUNT(z.productid)
FROM xcart_products z
JOIN xcart_products_lng w ON z.productid = w.productid
AND w.code = 'US'
WHERE z.forsale = 'Y'
group by z.product_t
Et donc en utilisant le champ d'index le plus gauche (product_t), le temps d'exécution est encore massif:
+-----------+--------------------+
| product_t | COUNT(z.productid) |
+-----------+--------------------+
| B | 4 |
| C | 10521 |
| D | 1 |
| F | 16 |
| G | 363 |
| J | 16 |
| L | 749 |
| M | 22 |
| O | 279 |
| P | 5304 |
| S | 22 |
| W | 662 |
+-----------+--------------------+
12 rows in set (0.81 sec)
Lorsque j'utilise le index complet (product_t, productid, forsale), le temps d'exécution est rapide (0.005 secondes). Comment dois-je le modifier pour accélérer la requête?
Je pense en quelque sorte la requête pourrait être améliorée par l'utilisation d'un demi ... rejoindre Cependant, je ne sais pas comment ...
Je pense que le mieux fait –
@GrijeshChauhan pls vérifier ma nouvelle réponse. J'ai réussi à le faire haha – bicycle
BON RIEN N'EST IMPOSSIBLE !! .. Très bien .. Je vais lire votre réponse aussi. –