Ultimamente sto ottenendo che MySQL si blocchi su query specifiche. Ho una tabella con oltre 500.000 record. Ecco la query in esecuzione:I risultati di ordinamento di MySQL impiegano molto tempo
SELECT * FROM WHERE
items
(itemlist_id = 115626) ORDER BY tableOrder DESC LIMIT 1
Ecco l'spiegare:
| 1 | SEMPLICE | articoli | TUTTI | NULL | NULL | NULL | NULL | 587113 | Usando dove; Usando filesort |
E qui è l'entrata process_list:
| 252996 | radice | localhost | itemdb | Query | 0 | Risultato dell'ordinamento | SELECT * FROM
items
WHERE (itemlist_id = 115642) ORDER BY tableOrder LIMITE DEL DESCRIZIONE 1 |
Qualche idea su quale potrebbe essere il motivo per cui questa query impiega 10 minuti per l'elaborazione? Quando lo eseguo manualmente è fatto rapidamente. (1 row in set (0.86 sec))
Grazie
Sei sicuro che l'ordinamento sia lento e non trovi il record? Se hai una scansione tabella di 500k + record su un campo che non è indicizzato, potrebbe richiedere del tempo. E la velocità "manuale" potrebbe essere dovuta al fatto che MySQL (o il sistema operativo) ha memorizzato nella cache i dati di un tentativo precedente e lo esegue molto più velocemente. –