Foros del Web » Programando para Internet » PHP »

Limites de memoria

Estas en el tema de Limites de memoria en el foro de PHP en Foros del Web. Que tal amigos.. Actuualmente estoy utilizando abtraccion de BD ADODb. Necesito hacer el siguiente query: $rs = $db->Execute("Select * from movil"); que me recupera aproximadamente ...
  #1 (permalink)  
Antiguo 06/04/2005, 09:01
 
Fecha de Ingreso: junio-2004
Ubicación: Ciudad de Panama
Mensajes: 513
Antigüedad: 13 años, 5 meses
Puntos: 7
Pregunta Limites de memoria

Que tal amigos.. Actuualmente estoy utilizando abtraccion de BD ADODb.

Necesito hacer el siguiente query:
$rs = $db->Execute("Select * from movil");

que me recupera aproximadamente un total de 348000 registros, pero ocurre el siguiente error:

Allowed memory size of 268435456 bytes exhausted

Segun el parametro memory_limit de mi php.ini lo tengo a 256M, dispongo de un total de memoria fisica de 3 Gigas y disponible de 800 MB aproximadamente

Hasta cuanto puedo fijar la memory_limit en mi php.ini para evitar que el scrip aborte por esta causa?

Agradezco de antemano sus valiosas opiniones al respecto

Un Saludo

Última edición por augusto_jaramil; 06/04/2005 a las 09:04
  #2 (permalink)  
Antiguo 06/04/2005, 10:11
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 13 años
Puntos: 34
Ahora una pregunta...para que necesitas en memoria 348000 registros? no pensas paginarlos al menos?
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #3 (permalink)  
Antiguo 07/04/2005, 08:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por nicolaspar
Ahora una pregunta...para que necesitas en memoria 348000 registros? no pensas paginarlos al menos?
Tal vez podría generar un "PDF" con esos N mil registros para generar un catalogo/libro mayor de contabilidad .. etc.

Pero, si no es así .. tendrá que estudiar sobre paginación o bien sobre consultas SQL condicionales .. Es decir .. no "filtrar" esos resultados en PHP (del total arrojado por una sentencia SQL sin condiciones) y hacerlo en SQL.

--------------------------

Sobre el tamaño a aumentar o definir de memory_limit .. Supongo que omitistes parte del mensaje de error .. sobre todo donde dice:

(tried to allocate xxxx bytes) in ....

Es ahí en ese dato donde dice lo que te faltó de memoria para ejecutar ese script. pasa a MB estos bytes (ya sabes .. divirlo entre 1024 para obtener Kb.. otra vez entre 1024 MB ..) y se lo sumas a lo que ya tienes configurado. Aunque en realidad .. si pasas a MB ese dato (tus 268435456 bytes) eso es realmente lo que necesitas mínimo (suma algunos MB más para tener algo de margen si puedes ..).

Por otro lado .. tu BD .. (no sabemos cual usas .. ya que usas una capa de abstracción de BD: classe para acceder a tus BD) también tendrá su limite de memoria que pueda gestionar .. para que lo tengas presente.

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:12.