MySQL - Select muy lenta

 
Vista:

Select muy lenta

Publicado por Daniel (5 intervenciones) el 15/04/2009 10:34:24
Tengo una tabla con 1.200.000 registros que tiene creado 4 indices segun las necesidades , uno de ellos esta compuesto por fecha,hora,idemp,idsec

al hacer una busqueda select max(fecha) from registros where idemp=1
me tarda 33 segundos

al hacer un explain veo que no hace la busqueda por el indice de fecha, sino que toma otros que tambien incluye el idemp. Como deberia hacerlo para que tome el indice por fecha o como hacer para acelerar el proseso.

Mysql 5.1.32 para windows

Este mismo proceso en mssql no tarda nada usando los mismo indices.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Select muy lenta

Publicado por Gonzalo GC (339 intervenciones) el 15/04/2009 13:47:46
Por default MySQL trata de usar el indice primario, o en su defecto un índice cuyos campos estén en el SELECT (Leer el manual de referencia: "7.4.5. Cómo utiliza MySQL los índices" http://dev.mysql.com/doc/refman/5.0/es/mysql-indexes.html).
Lo que si puedes hacer es obligarlo a usar un índice determinado con FORCE INDEX:

SELECT * FROM table1 FORCE INDEX (IndexList)
WHERE key1=1 AND key2=2 AND key3=3;

FORCE INDEX actúa como USE INDEX (key_list) pero con la adición que un escaneo de tabla se asume como operación muy cara. En otras palabras, un escaneo de tabla se usa sólo si no hay forma de usar uno de los índices dados para encontrar registros en la tabla.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar