Últimamente he estado obteniendo MySQL para colgar en consultas específicas. Tengo una mesa con más de 500,000 registros. Ésta es la consulta que se está ejecutando:Ordenamiento MySQL Resultados lleva mucho tiempo
SELECT * FROM
items
DONDE (itemlist_id = 115626) ORDER BY tableOrder DESC LIMIT 1
Aquí es la de explicar:
| 1 | SIMPLE | artículos | TODO | NULL | NULL | NULL | NULL | 587113 | Usando dónde; Usando filesort |
Y aquí es la entrada process_list:
| 252996 | raíz | localhost | itemdb | Consulta | 0 | Resultado de clasificación | SELECCIONAR * DESDE
items
DONDE (itemlist_id = 115642) ORDER BY tableOrder DESC LIMIT 1 |
¿Alguna idea de lo que podría estar haciendo que esta consulta tarde 10 minutos en procesarse? Cuando lo ejecuto manualmente, se hace rápidamente. (1 row in set (0.86 sec))
Gracias
¿Estás seguro de que la clasificación es lenta y no encuentras el registro? Si tiene un escaneo de tabla de más de 500k registros en un campo que no está indexado, podría tomar un tiempo. Y la rapidez "manual" podría ser porque MySQL (o el sistema operativo) ha almacenado en caché los datos de un intento anterior y se ejecuta mucho más rápido. –