Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/11/2012, 08:34
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Base de datos muy grande

Por empezar, 400.000 registros no llegan ni a la categoría de una base "mediana". menos aún a la de "grande". Son tan pocos que ni cuentan.
En cuanto a la optimización... depende muchísimo de las consultas, depende muchísimo de la sintaxis, los datos que se pidan, las relaciones entre tablas, los indices creados, y un enorme, largo e interminable etcétera.
Hay muchísimo escrito y publicado sobre optimización, y creo que deberías empezar por buscar sobre el tema en Google. Luego veremos sobre la marcha del desarrollo qué problemas encuentras.
Lo que quiero expresar es que hay directivas generales, pero luego la optimización dependerá del caso específico que quieras mejorar. No hay una regla absoluta.

Como advertencias básicas:
1) No uses "SELECT *", a menos que realmente vayas a usar todos los datos devueltos.
2) Los GROUP BY y ORDER BY son asesinos de performance. Sólo es conveniente usarlos si es necesario, y son efectivos sólo si el resultado de la consulta es mas o menos reducido.
3) No uses el WHERE para relacionar las tablas, es antiperformántico. Usa INNER/LEFT/RIGHT JOIN ... ON... Es mucho más eficiente.
4) Crea indices sólo si es necesario para los casos que usas. Crearlos por que sí, consume tiempo de inserciones/actualizaciones que ningun desarrollador tiene en cuenta.
5) Normaliza las tablas todo lo que puedas. Cierto nivel de atomizacion es mucho más eficiente que hacer tablas enormes con exceso de redundancia, aunque las consultas tengan una escrutura más compleja.
6) Mucho, mucho más...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)