Ver Mensaje Individual
  #9 (permalink)  
Antiguo 09/04/2007, 04:01
Avatar de dashtrash
dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 1 mes
Puntos: 270
Re: mejor rendimiento en el servidor

SQL permite JOINS, Select anidados, etc,etc.
Estas construcciones implican que alguien, en algún punto, conoce cómo están almacenados 2 o más objetos, dentro de la base de datos, para poder construir 1 sola query que relacione ambas cosas.
Lo cual es una violación de la OOP.
Opciones:
1) No haces joins.
2) Creas métodos "especificos" para crear estas queries.(lo cual sigue siendo una violación de la OOP).

La OOP construye un sistema de relación entre objetos, y SQL tiene el suyo propio.El mapeo entre un sistema de relación y otro se suele solucionar montando una clase por tabla (más o menos), lo cual es muy de OOP, pero completamente ineficiente para muchas operaciones.
Esto también te puede ocurrir usando simplemente funciones,sin OOP, por supuesto.Pero OOP *te insta* a que te ocurra.Es su filosofía.

Las cachés no resuelven el problema.Cachear 100 queries, y montar una pagina, sigue siendo más lento que cachear 1 query, y montar una página.
Además, algunos SGDB tienen sus propias cachés.Y,cuantas menos queries diferentes se envíen,más probabilidad tienes de que exista esa query en la caché del SGDB.Por supuesto, además, no todo es cacheable, y no todo tiene la misma política de caché....Lo cual se resuelve también, por supuesto..

Última edición por dashtrash; 09/04/2007 a las 04:06