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

Ayuda con indices, esta es mi DB

Estas en el tema de Ayuda con indices, esta es mi DB en el foro de Mysql en Foros del Web. Hola a todos.. He creado una base de datos y me faltaria aplicar correctamente los indices para mejorar el rendimiento de mi base de datos, ...
  #1 (permalink)  
Antiguo 17/05/2008, 08:34
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 21 años, 5 meses
Puntos: 6
Ayuda con indices, esta es mi DB

Hola a todos..

He creado una base de datos y me faltaria aplicar correctamente los indices para mejorar el rendimiento de mi base de datos, seria la primera vez que uso indices es por ello que no tengo mucha idea.

mi base de datos.
Tabla / Campos

s -- campos: / ids / ref / d / b / m / m2 / a / precio / notas /
s_caracteristicas -- campos: / ids / idcaracteristica /
s_claves -- campos: / ids / claves /
s_descripciones -- campos: / ids / descripcion /
s_poblaciones -- campos: / ids/ idpoblacion /
s_tipos -- campos: / ids / idtipo /
s_zonas -- campos: / ids / zona/

si os fijais el campo ids aparace en todos las tablas el de la tabla "s" es autoincrement y luego conforme voy añadiendo datos uso las otras tablas poniendo el ids correspondiente.

creo q esta seria una buena DB para usar indices ¿me equivoco?

alguien puede ayudarme?

Saludos.
  #2 (permalink)  
Antiguo 17/05/2008, 08:49
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: Ayuda con indices, esta es mi DB

Los índices y su uso tienen que ver no solamente con la construcción de las tablas, sino principalmente con las características de las consultas y con el volumen de datos de cada tabla.
Definir un índice es crear una estructura que se actualiza en la medida que se insertan registros con los datos provenientes de la tabla. Si las claves usadas son complejas o demasiado grandes y las tablas demasiado pequeñas estarás manteniendo un archivo adicional que no te traerá ventajas.
Te recomiendo que primero diseñes las consultas y luego, en base a los campos más usados, definas qué índices te conviene crear.

Nunca te olvides que un índice te puede mejorar la performance, pero también reducirla.
__________________
¿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 17/05/2008, 09:35
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 21 años, 5 meses
Puntos: 6
Respuesta: Ayuda con indices, esta es mi DB

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Los índices y su uso tienen que ver no solamente con la construcción de las tablas, sino principalmente con las características de las consultas y con el volumen de datos de cada tabla.
Definir un índice es crear una estructura que se actualiza en la medida que se insertan registros con los datos provenientes de la tabla. Si las claves usadas son complejas o demasiado grandes y las tablas demasiado pequeñas estarás manteniendo un archivo adicional que no te traerá ventajas.
Te recomiendo que primero diseñes las consultas y luego, en base a los campos más usados, definas qué índices te conviene crear.

Nunca te olvides que un índice te puede mejorar la performance, pero también reducirla.

el tipo de cosulta sera siempre

SELECT * FROM tabla WHERE


aprovecho para una pregunta,
que es mejor hacer un

SELECT tabla1.campo1, tabla2.campo1 FROM tabla1, tabla2 WHERE tabla1.campo1=tabla2.campo2 AND ...

o hacer dos select simples, uno para buscar el valor necesario para hacer la siguente consulta?
  #4 (permalink)  
Antiguo 17/05/2008, 10:07
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: Ayuda con indices, esta es mi DB

1. Un SELECT *.* FROM Tabnla, es el modo más ineficiente de ejecutar una consulta. Casi nunca se requiere, porque en realidad de una tabla X, lo que interesa son determinados datos. Nunca traigas más que exactamente lo que necesitas. campos de más, son registros menos que llegan en el mismo bloque.
2. La eficiencia de las consultas se mide también por traer lo que necesitas, y darle a la base de datos para que haga la tarea para la que se diseñó: Responder consultas, filtrar datos y optimizar respuestas. ¿para qué barrer en la aplicación conjuntos de datos que la base puede responder. Imagina algo así:
Código:
SELECT t1.campo1, T2..campo1 FROM tabla1 t1 INNER JOIN tabla2 t2 USING (CAMPO4) WHERE t2.campo2 BETWEEN x AND y HAVING campo5 = 1.000;
¿Te imaginas lo que debes hacer para lograr eso en el código?
hay tareas para las que la base de datos está optimizada. Déjaselas a ella.
__________________
¿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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 22:56.