Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/04/2016, 06:51
azaz
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 4 meses
Puntos: 10
crear indices correctamente

Uso MariaDB, tengo una tabla con unos 200.000 registros donde tengo varios campos que utilizo para las busquedas seria una tabla mas o menos con la siguiente estructura.

perfiles tabla

id
buscando
ciudad
perfil

las consultas que realizo son de los siguientes tipos por ejemplo:
Código MySQL:
Ver original
  1. select count(id)from perfiles where buscando='amistad' and ciudad='cancun' and perfil=1;

la consulta me tarda 0.16s sin indices en el campo quiero saber si es mejorable con los indices.
el campo buscando puede tener 5 opciones y la ciudad pues esta bastante mas repartido.

cree dos indices en ciudad y buscando si repito la consulta me tarda menos 0.14s
pero si quito la ciudad es decir realizo esta consulta:

Código MySQL:
Ver original
  1. select count(id)from perfiles where buscando='amistad' and perfil=1;
la consulta me tarda mas 0.30s usando el EXPLAIN veo que escanea la mitad de la tabla.

Entonces tengo aqui mis dudas si escanea la mitad de la tabla porque tarda mas?
lo que si tengo claro es que el indice en ciudad si deberia crearlo(eso creo tampoco seguro al 100%)pero tengo dudas si en el campo buscando deberia crear un indice.

Algun experto me puedo orientar para saber cuando crear indices.
saludos.