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

problema al crear índice de una consulta

Estas en el tema de problema al crear índice de una consulta en el foro de Mysql en Foros del Web. hola, necesito crear un indice de una consulta previa que hice con un select: la query select..funciona bien, pero despues no sé como decirle que ...
  #1 (permalink)  
Antiguo 06/05/2010, 15:52
 
Fecha de Ingreso: febrero-2006
Mensajes: 233
Antigüedad: 18 años, 2 meses
Puntos: 3
problema al crear índice de una consulta

hola, necesito crear un indice de una consulta previa que hice con un select:
la query select..funciona bien, pero despues no sé como decirle que agarre IdentificadorDog como índice.
Código:
SELECT IdentificadorDog FROM AnimalPerro WHERE fecha_entrada>CURDATE()-40;

ALTER TABLE AnimalPerro ADD INDEX ultimosPerros(IdentificadorDog );
gracias una vez más, chao
  #2 (permalink)  
Antiguo 06/05/2010, 17:20
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, 5 meses
Puntos: 2658
Respuesta: problema al crear índice de una consulta

Error de sintaxis.
Los índices, cuando no se indican en la creación de la tabla, se crean como objetos, así como para eliminarlos se usa DROP INDEX y no ALTER TABLE.
Código MySQL:
Ver original
  1. CREATE INDEX AnimalPerro ON ultimosPerros(IdentificadorDog );

Este tipo de cosas te conviene leerlas directamente del manual de referencia, donde están mejor explicadas y más extenso.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 07/05/2010, 05:26
 
Fecha de Ingreso: febrero-2006
Mensajes: 233
Antigüedad: 18 años, 2 meses
Puntos: 3
Respuesta: problema al crear índice de una consulta

Eres un genio gnzsoloyo, me sirvió de mucho! thanks

tengo otro error, el SELECT está bien, es al crear índice:
Código:
SELECT AnimalPerro.* FROM AnimalPerro LEFT JOIN Raza USING 
(nombre_raza) WHERE AnimalPerro.edad>10;
AnimalPerro.* me devuelve los tres campos que tiene la tabla.

error al crear un índice de esto:
Código:
CREATE INDEX queRazas ON AnimalPerro(AnimalPerro.*);
no doy al clavo, ayuda!!
  #4 (permalink)  
Antiguo 07/05/2010, 05:47
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, 5 meses
Puntos: 2658
Respuesta: problema al crear índice de una consulta

Porque los campos a colocar en un índice deben ser específicos, y no se debe invocar a la tabla dentro del paréntesis, por cuanto ya está indicada por fuera.
Si quieres hacer un índice sobre todos los campos (no es funcional y generará lentitud de inserciones y actualizaciones) deberás indicarlos todos.
Trata de no abusar de los índices y recuerda que cualquier campo PK o UNIQUE ya define de por sí mismo un índice al crear la tabla.
Código MySQL:
Ver original
  1. CREATE INDEX queRazas ON AnimalPerro(nombreRaza);

Si quieres un índice BTREE específicamente, o bien un HASH, debes indicarlo al crearlo, pero ten en cuenta que los HASH sólo están permitidos en tablas MEMORY o HEAP.

Código MySQL:
Ver original
  1. CREATE INDEX queRazas USING BTREE ON AnimalPerro(nombreRaza);

Para detalles más finos te conviene darle una leída al capítulo 13.1.4. Sintaxis de CREATE INDEX
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: Ninguno
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 06:21.