Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/12/2007, 17:22
Avatar de xevisoyyo
xevisoyyo
 
Fecha de Ingreso: mayo-2005
Mensajes: 166
Antigüedad: 19 años
Puntos: 1
Optimizando tablas

Hola estoy aprendiendo a optimizar y me he topado con una duda/problema

Los indices PRIMARY e INDEX
lo hago simple como ejemplo, tengo una tabla (InnoDB) llamada pruebas donde id (PRIMARY) y categoria (INDEX)

Por ejemplo en esta consulta

Código:
EXPLAIN SELECT id,categoria
FROM pruebas
WHERE categoria LIKE 'aventuras'
id ----------------- 1
select_type --------- SIMPLE
table - ------------- pruebas
type --------------- range
possible_keys ------ categoria_I
key ----------------- categoria_I
key_len ----------- 150
ref ------------------ NULL
rows --------------- 1
Extra - ------------- Using where; Using index

(bueno por ahi no creo que haya nada mal ¿no?)

Pero en esta otra consulta no se porque me repasa todas las filas

Código:
EXPLAIN SELECT id, categoria
FROM pruebas
WHERE id LIKE 5
id ----------------- 1
select_type --------- SIMPLE
table -------------- pruebas
type --------------- index
possible_keys ------ PRIMARY
key ---------------- categoria_I
key_len ----------- 150
ref ----------------- NULL
rows -------------- 14
Extra -------------- Using where; Using index

En esta ocasión type es index y si no tengo mal entendido revisa el campo id de todos los registros en este caso 14 mientras que antes solo necesitaba 1 si me lo podéis explicar

No se si esto se debe a que la base de datos elige el indice INDEX (categoria_I) en lugar del indice PRIMARY

Gracias y saludos