Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

indices en una tabla

Estas en el tema de indices en una tabla en el foro de Mysql en Foros del Web. saludos a todos mi pregunta es esta: en una tabla hice un indice a un campo ALTER TABLE mov ADD INDEX tipos (tipo); mi pregunta ...
  #1 (permalink)  
Antiguo 09/01/2009, 09:03
 
Fecha de Ingreso: septiembre-2008
Ubicación: Cuernavaca,Morelos,Mexico
Mensajes: 80
Antigüedad: 15 años, 6 meses
Puntos: 0
Exclamación indices en una tabla

saludos a todos mi pregunta es esta:
en una tabla hice un indice a un campo

ALTER TABLE mov ADD INDEX tipos (tipo);

mi pregunta es como hacer la consulta sobre ese indice??
la consulta que yo tengo es esta, pero como seria consultando al indice que hice??:
SELECT sum(cantidad) from movimientos where modelo='MADTE' AND fecha<'2009-01-01' AND tipo='E' ORDER BY fecha ASC
  #2 (permalink)  
Antiguo 09/01/2009, 09:06
 
Fecha de Ingreso: julio-2008
Mensajes: 40
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: indices en una tabla

El indice que has creado no es un nuevo campo, es decir, no puedes hacer un select sobre ese indice. El indice se usa automaticamente por el mysql si procede.
  #3 (permalink)  
Antiguo 09/01/2009, 09:14
 
Fecha de Ingreso: enero-2009
Ubicación: Lima
Mensajes: 47
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: indices en una tabla

La funcion del indice es ordenarte la tabla para agilizar tus select o consultas nada mas amigo
  #4 (permalink)  
Antiguo 09/01/2009, 09:41
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: indices en una tabla

Puntualmente la jerarquía de ejecución sería mas o menos:
1. Indices PRIMARY.
2. Indices UNIQUE.
3. Indices INDEX y FULLTEXT.

Si quieres usar un índice definido sobre uno o más campos y que no sea un PRIMARY, debes incluir la cláusula FORCE INDEX nombreIndice en el FORM:

Código sql:
Ver original
  1. SELECT SUM(cantidad)
  2. FROM movimientos FORCE INDEX tipos
  3. WHERE modelo='MADTE' AND fecha < '2009-01-01' AND tipo='E'
  4. ORDER BY fecha ASC

Si cubre el campo principal del WHERE, entonces la consulta se acelera notablemente, pero todavía es optimizable.
A veces resulta conveniente que el índice definido sea uno que cubra la totalidad de los campos incluidos en el SELECT y al menos uno de ellos en el WHERE, de ese modo MySQL lee el índice y no la tabla.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:13.