Ver Mensaje Individual
  #8 (permalink)  
Antiguo 03/01/2011, 11:11
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: 16 años, 4 meses
Puntos: 2658
Respuesta: Hacer matching de nombres

El término abarca todo, la performance se mide respecto al total y luego a cada subsistema, considerando separadamente lo que hace la aplicación, lo que tarda la web y lo que hace el MySQL... La base de datos es una parte del sistema, pero no es ni por lejos lo central ni lo único.
Lo que respecta a las consultas, es tema de MySQL, donde existen muchas formas de optimizar una misma consulta.
Cuando te encuentras con una baja performance global (la que ve el usuario), la depuración raras veces empieza por la base. Generalmente lo primero que hay que mirar es la aplicación, luego el hardware, después las comunicaciones, luego el servicio de web y finalmente la base. Nunca al revés.
Los programadores tienden a culpar a la base de los problemas, pero es más fácil que lo que haya sean llamadas recursivas o innecesarias a la base, y no que las sentencias de consulta estén mal pensadas. A mi me ha pasado encontrarme con una función que invocaba a la base para leer un mismo registro... 35 veces...
Eso no es error de diseño de consultas ni de performance de la base. Es un error de diseño de procesos, y los procesos son asunto de la aplicación.
Precisamente por eso la dirección de análisis va de afuera hacia adentro y no al revé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)