2008-10-20 17 views
16

Tengo un formulario de PHP (aplicación de hipoteca) que tiene aproximadamente 400 campos, el tráfico en el sitio será bajo.¿Tamaño ideal de la sesión de PHP?

¿Cuál es el tamaño de sesión ideal para 400 campos que entran en una base de datos MySQL?

En php.ini ¿qué debo configurar?

¿Algo que deba establecer que me falta?

Respuesta

13

Bueno, personalmente he tenido sesiones muy grandes antes con muy pocos problemas. Probablemente el tamaño más grande que he tenido antes es ~ 10MB. No es óptimo, pero no he tenido problemas con los scripts lentos incluso con ese tamaño. No me preocuparía que las sesiones lleguen a ser grandes, pero trataría de mantenerlo bajo control. Mi teoría es que si mantenerlo en la sesión lo hace mucho más rápido que ejecutar la base de datos cada vez (como en el caso de una búsqueda), entonces lo busco.

10

No es recomendable almacenar una gran cantidad de datos en una sesión. Como han señalado otros , no es una idea duplicar los datos de una base de datos. Incluso si realmente necesita algún tipo de mecanismo de caché, no almacenaría los datos en una sesión. El problema es que PHP reescribe los datos de la sesión para cada solicitud. Y como todos sabemos, escribir en el disco es una operación bastante lenta .

Si realmente necesita hacerlo, serialice la matriz y guárdela en un archivo separado .

Si necesita ese grupo de datos serializados solo 1 en 10 páginas, solo descomprímalo una vez en 10 páginas. La sesión es, por supuesto, embalaje/desembalaje para cada solicitud.

+4

[fuente] (http://bytes.com/topic/php/answers/11014-questions-size-session#post46656) –

+0

No creo que esta sea la respuesta correcta. leer/escribir datos en la base de datos también es de lectura/escritura en el disco (excepto la memoria caché). También tenga en cuenta que la mayoría de los juegos tienen que mantener sus datos en la memoria para un acceso más rápido, que en el caso de PHP, son variables de sesión y la base de datos es solo almacenamiento inactivo secundario. – AaA

2

También debe comprobar, post_max_size, max_input_vars (1000 por defecto por lo que está bien)