MySQL - Crear indice en consulta

 
Vista:

Crear indice en consulta

Publicado por mkt (7 intervenciones) el 26/01/2014 10:59:40
Buenas, tengo una cuestion a ver si alguien me la puede resolver.

Según esta consulta:

1
2
3
4
5
6
7
mysql> explain select cod_cuenta from cuentas order by fecha_creacion, cod_cliente DESC;
+----+-------------+---------+------+---------------+------+---------+------+------+----------------+
| id | select_type | table   | type | possible_keys | key  | key_len | ref  | rows | Extra          |
+----+-------------+---------+------+---------------+------+---------+------+------+----------------+
|  1 | SIMPLE      | cuentas | ALL  | NULL          | NULL | NULL    | NULL |   36 | Using filesort |
+----+-------------+---------+------+---------------+------+---------+------+------+----------------+
1 row in set (0.00 sec)

Intento optimizarla creando un indice de esta manera:
1
2
3
mysql> create index indice on cuentas(fecha_creacion, cod_cliente DESC);
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

Y obtengo ahora este resultado de la misma consulta:
1
2
3
4
5
6
7
mysql> explain select cod_cuenta from cuentas order by fecha_creacion, cod_cliente DESC;
+----+-------------+---------+-------+---------------+--------+---------+------+------+-----------------------------+
| id | select_type | table   | type  | possible_keys | key    | key_len | ref  | rows | Extra                       |
+----+-------------+---------+-------+---------------+--------+---------+------+------+-----------------------------+
|  1 | SIMPLE      | cuentas | index | NULL          | indice | 7       | NULL |   36 | Using index; Using filesort |
+----+-------------+---------+-------+---------------+--------+---------+------+------+-----------------------------+
1 row in set (0.00 sec)

¿Está bien hecho? ¿Ha quedado optimizado por el indice, o se puede optimizar mas?

Muchas gracias de antemano.
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
Imágen de perfil de xve
Val: 796
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Crear indice en consulta

Publicado por xve (1151 intervenciones) el 26/01/2014 21:30:52
Hola mkt, creo que lo tienes bien hecho, pero esto lo notaras en el momento que realices un where...
Ahora mismo, utilizas el índice para el orden, pero si hace algún where, veras que moverá menos rows.

Yo creo que para esa consulta lo tienes perfecto!!
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

Crear indice en consulta

Publicado por mkt (7 intervenciones) el 27/01/2014 16:49:56
Muchas gracias
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