Rendimiento Programación orientada a objetos

Fenilalanina
04 de Marzo del 2008
Hola,

Mantengo un portal web de un gran volúmen de visitas y bastante movimiento en cuanto a peticiones MySQL (unas 300 por segundo) y demomento está programado para PHP4.

Bien, se me ha metido en la cabeza hacer la versión dos del portal con PHP5 y Programación orientada a Objetos, he empezado a ello y me surje un problema base que no me deja dormir (pesadillas y sudores por la noche)...

Actualmente tengo algo parecido a:

1. Conecta a la BD.
2. Dame campo1, campo2, campo3 de las 10 últimas noticias.
3. Pinta campo1, campo2 y campo3 en un bucle.
4. Libera acceso a la BD.

Y cuando iba a mudar el módulo de noticias a la orientación de objetos me encuentro con un problema... ¿Cómo lo hago?

1. Un objeto, Varias SQL: En el objeto noticia creo un método que devuelva identificadores de noticias y posteriormente recorro ese array de identificadores para volver a hacer una consulta a la MySQL para obtener esos valores y recojer los atributos de mi objeto noticia.
2. Una SQL, Varios objetos: En el objeto noticia creo un método capaz de sacar un listado de noticia con todos los campos que necesite e instancie un objeto noticia para cada registro de la BD devuelvo.

¿Qué implica decidirse por uno o por otro? Pues mucho! Puesto que en estos momentos, por cada visitante se ejecuta una sola sentencia SQL para sacar un listado de noticias con sus campos, pero migrar el sistema a POO implica ejecutar muchas más sentencias o bien crear tantos objetos en memoria como noticias haya.

¿Qué me recomiendan?