Buenas... resulta que tengo un probema con un filtro de busquedas que estoy haciendo... utilizo como ORM doctrine 1.2 junto con una base de datos Mysql...
La idea esrealizar un filtro de busquedas con etiquetas de donde estoy parado (en la búsqueda) similar al de mercadolibre.
Para hacer mas sencilla la tarea decidí utilizar objetos, si bien el resultado del desarrollo estaría funcionando sufrió un percance al probarlo con la base de datos actual.. ( la base de datos de prueba tenía suficientes datos pero no tantos como la de producción).
El problema surge que a la hora de que me liste todos los resultados de la base de datos (es decir sin colocar ningun dato al filtro) "explota" todo por decirlo de alguna manera. Básicamente me sale el siguiente error:
Código:
Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 80 bytes) in /www/autosdelnea.com.ar/htdocs/ORM2/Doctrine-1.2.4/Doctrine/Record.php on line 240<br /><br />
Asumo que es porque me excedo de la memoria permitida por el servidor php del hosting.
La forma de trabajar este filtro es recuperar los datos que se aplican en el filtro mediante una consulta dql, y tenerlos en un arreglo de objetos (o lo que me devuelva la consulta del doctrine)...
Luego realizo un recorrido por todos estos objetos para empezar a contar y listar las opciones extras que no fueron seleccionadas en el filtro... (para mejor entendimiento sugiero visitar mercadolibre y ver la barra de opciones encima de los resultados de busqueda..)
Finalmente se listan los resultados....
Ahora... Si aplica varios filtros anda de 10... pero surge el error mostrado anteriormente cuando dejo sin aplicar ningún filtro y debe listar todos los filtros posibles con los resultados (supongo que tiene todos los objetos en memoria)...
Se que hay otras formas de resolver este problema.. como por ejemplo evitar que se convierta a objetos todaaaa la base de datos cuando no se aplican filtros...
Pero quería consultar con los expertos cual consideran es la mejor manera de encarar este dilema desde la perspectiva de rendimiento y flexibilidad que ofrece los objetos.