Dernièrement, MySQL s'est accroché à des requêtes spécifiques. J'ai une table avec plus de 500 000 enregistrements. Voici la requête en cours d'exécution:MySQL Sorting Results prend beaucoup de temps
SELECT * FROM
items
OU (itemlist_id = 115626) ORDER BY TableOrder DESC LIMIT 1
est l'expliquer ici:
| 1 | SIMPLE | objets | TOUS | NULL | NULL | NULL | NULL | 587113 | En utilisant où; Utilisation de filesort |
Et voici l'entrée process_list:
| 252996 | racine | localhost | itemdb | Requête | 0 | Résultat de tri | SELECT * FROM
items
WHERE (itemlist_id = 115642) COMMANDE PAR tableOrder DESC LIMIT 1 |
Une idée de ce que cette requête pourrait prendre 10 minutes à traiter? Quand je le lance manuellement, c'est fait rapidement. (1 row in set (0.86 sec))
Merci
Etes-vous sûr que le tri est lent et ne trouve pas l'enregistrement? Si vous avez une analyse de table de 500k + enregistrements sur un champ qui n'est pas indexé, cela peut prendre un certain temps. Et la rapidité "manuelle" pourrait être due au fait que MySQL (ou le système d'exploitation) a été mis en cache dans les données d'une tentative antérieure et s'exécute beaucoup plus rapidement. –