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:
id ----------------- 1EXPLAIN SELECT id,categoria FROM pruebas WHERE categoria LIKE 'aventuras'
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:
id ----------------- 1EXPLAIN SELECT id, categoria FROM pruebas WHERE id LIKE 5
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