Foros del Web » Programando para Internet » PHP »

Requiero una recomendación sobre el serialize

Estas en el tema de Requiero una recomendación sobre el serialize en el foro de PHP en Foros del Web. Que tal, soy nuevo en este foro. Paso a explicar mi duda... Resulta que yo uso esta función (serialize) para encapsular un array y guardarlo ...
  #1 (permalink)  
Antiguo 04/08/2011, 15:57
 
Fecha de Ingreso: agosto-2011
Mensajes: 3
Antigüedad: 12 años, 8 meses
Puntos: 0
Pregunta Requiero una recomendación sobre el serialize

Que tal, soy nuevo en este foro.

Paso a explicar mi duda...
Resulta que yo uso esta función (serialize) para encapsular un array y guardarlo en la base de datos, el tema es que el array está en constante cambio y en constante movimiento siempre (SELECT's y UPDATE's), guardo almenos 10 o 15 datos en la matríz, deberia usar el serialize? o deberia crear una fila en la base de datos para cada objeto del array?, por supuesto que hablo con respecto a "que me conviene más para resaltar el rendimiento".
Espero que puedan ayudarme con esta incognitirijilla.

Muchas gracias y éxitos!
  #2 (permalink)  
Antiguo 05/08/2011, 06:23
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Requiero una recomendación sobre el serialize

Saludos Pinoki y bienvenido, ¿por qué no usar la base de datos para almacenar los datos y luego hacer consultas conforme a lo que deseas mostrar?. Es decir, una columna con la información y solo insertar cuando sea necesario.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 05/08/2011, 06:48
 
Fecha de Ingreso: agosto-2011
Mensajes: 3
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Requiero una recomendación sobre el serialize

Cita:
Iniciado por abimaelrc Ver Mensaje
Saludos Pinoki y bienvenido, ¿por qué no usar la base de datos para almacenar los datos y luego hacer consultas conforme a lo que deseas mostrar?. Es decir, una columna con la información y solo insertar cuando sea necesario.
Buenos días, gracias por contestar.
Perdón, no entendí bien lo que me querés decir, te referis a una columna por dato o en una columna poner la matriz serializada?

Te doy más detalles, estoy trabajando en un juego por navegador, entonces debo mostrar la lista de construcciones (la matríz completa) y en caso de que se efectue una construcción debo actualizar el nivel de éste en el array, de ahi mi pregunta, porque la matriz está en constante movimiento y no sé si es mejor poner un dato por columna o serializar el array en una sola columna.

PD: serializando los datos en una sola columna me consume 0.01 MB de RAM menos pero tarda un 20% - 50% más en cargar la página, hablando en decimas y milesimas de segundos.

Última edición por Pinoki; 05/08/2011 a las 07:06
  #4 (permalink)  
Antiguo 05/08/2011, 07:12
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Requiero una recomendación sobre el serialize

¿Haz tratado ingresar datos por datos en la base de datos y verificar directamente? Me refiero en vez de almacenar los datos serializados, cada dato representa una fila en la base de datos, es decir

array('foo', 'bar', 'baz')

en la base de datos es

INSERT INTO tabla VALUES('foo')
INSERT INTO tabla VALUES('bar')
INSERT INTO tabla VALUES('baz')

Y hacer las consultas pertinentes cuando lo necesites, si deseas puedes hacer la consulta y almacenar los datos en un array. Algo como

$rows = ...SELECT columna FROM tabla...;

Ya tu debes saber como hacerlo, si con funciones o con PDO (que es la forma recomendada).
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 05/08/2011, 07:32
 
Fecha de Ingreso: agosto-2011
Mensajes: 3
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Requiero una recomendación sobre el serialize

Cita:
Iniciado por abimaelrc Ver Mensaje
¿Haz tratado ingresar datos por datos en la base de datos y verificar directamente? Me refiero en vez de almacenar los datos serializados, cada dato representa una fila en la base de datos, es decir

array('foo', 'bar', 'baz')

en la base de datos es

INSERT INTO tabla VALUES('foo')
INSERT INTO tabla VALUES('bar')
INSERT INTO tabla VALUES('baz')

Y hacer las consultas pertinentes cuando lo necesites, si deseas puedes hacer la consulta y almacenar los datos en un array. Algo como

$rows = ...SELECT columna FROM tabla...;

Ya tu debes saber como hacerlo, si con funciones o con PDO (que es la forma recomendada).
Ya hice los test necesarios, serializados los datos al updatearse consume demasiado, asi que voy a emplear tu citación "un dato por fila".
Muchas gracias, me fuiste de gran ayuda.

Éxitos!

Etiquetas: rendimiento, serialize, unserialze, bases-de-datos
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 02:52.