Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Almacenamiento de Sesiones PHP en MySql

Estas en el tema de Almacenamiento de Sesiones PHP en MySql en el foro de Mysql en Foros del Web. Buen dia tengan todos ustedes, pues paso por aquí para consultar una duda que tengo y que no encuentro una respuesta clara... Tengo una clase ...
  #1 (permalink)  
Antiguo 10/09/2014, 17:38
Avatar de jvier  
Fecha de Ingreso: septiembre-2014
Mensajes: 106
Antigüedad: 9 años, 7 meses
Puntos: 6
Pregunta Almacenamiento de Sesiones PHP en MySql

Buen dia tengan todos ustedes, pues paso por aquí para consultar una duda que tengo y que no encuentro una respuesta clara...

Tengo una clase en php que hace que todas las sesiones que se crean en mi aplicación se almacenen y/o actualicen en una base de datos MySql, todo funciona muy bien.. pero mi duda es respecto al desempeño y rendimiento del servidor, ya que cada movimiento que se haga a las sesiones significa de 3 a 6 consultas a la bd (lecturas, eliminaciones, actualizaciones) y ademas el ID de sesión cambia en cada movimiento ademas es encriptado junto con los valores de todas las variables de sesión, y ademas la sesión es verificada con un token en cada petición para tratar de evitar el robo de sesiones... entonces ustedes que opinan?

-Esto en un servidor compartido puede traer problemas?
Lo hice porque en teoría esto aumenta la seguridad en las sesiones por que de no ser así los archivos de sesión pueden ser leídos por otros usuarios del mismo servidor, por eso opte por almacenarlos en MySql

Ademas todos estos movimientos a las sesiones php los hace en los archivos de sesión que se almacenan en el servidor.. que es mas pesado para el servidor? hacerlos en los archivos o en MySql?

Esta web que maneja este sistema de sesiones puede ser muy visitada.. es por eso que estoy pensando en el rendimiento.. en un futuro si el proyecto lo permite lo mudare a un VPS.. pero por un buen tiempo tendrá que trabajar en un compartido.

que opinan ustedes expertos?
__________________
Me gusta desarrollar aplicaciones para Android, y me considero bueno para el PHP, Javascript y el AS3.

AH! y agradezco puntitos jeje (si mis respuestas te ayudan).
  #2 (permalink)  
Antiguo 11/09/2014, 03:01
 
Fecha de Ingreso: septiembre-2014
Mensajes: 180
Antigüedad: 9 años, 7 meses
Puntos: 14
Respuesta: Almacenamiento de Sesiones PHP en MySql

Mmmh, depende de muchos factores, como la optimización de la base de datos, el servidor donde esté alojado el proyecto, cantidad de visitas, optimización de todos los scripts, etc.

Puedes realizar pruebas de rendimiento y ver, por ejemplo, el tiempo invertido en guardar (actualizar, etc) una sesión. Para ello puedes usar la función microtime() de php, tomando tiempo al principio y otro al final.

Luego puedes extrapolar. Por ejemplo, si esas 3 ó 6 consultas tardan 1 segundo (por poner un ejemplo redondo, aunque sea exagerado), tendrías que pensar en optimizar esa interacción con la BD, creando índices, optimizando los tipos de campos, etc. Hasta que llegues a unos tiempos aceptables y pensando siempre que no habrá una única persona consultando la web.

En cuanto a si será más pesado usar el sistema de archivos o mysql, te podría asegurar que siempre será más lento el sistema de archivos. En principio el acceso a lectura y escritura a disco siempre será más lento (aunque sean discos SSD).

No es una respuesta tajante en un sentido u otro, pero espero que te pueda dar alguna idea o te sirva de algo.

:)
  #3 (permalink)  
Antiguo 11/09/2014, 09:28
Avatar de jvier  
Fecha de Ingreso: septiembre-2014
Mensajes: 106
Antigüedad: 9 años, 7 meses
Puntos: 6
Pregunta Respuesta: Almacenamiento de Sesiones PHP en MySql

Gracias json por responder.. te comento que uso consultas preparadas y medí el tiempo como amablemente comentaste y calcule que tarda 0.02 segundos por movimiento en sesión.. si tomamos en cuenta que en promedio hace 4 consultas a la BD por movimiento calculo que hace 200 consultas por segundo. estoy en lo correcto?

suponiendo que cada usuario hace un promedio de 20 movimientos en la web por minuto (exagerando un poco) y por cada movimiento se realizan 6 consultas a la BD (sumando 2 para otra información ademas de las sesiones) tenemos 120 consultas por minuto, multiplicándolo por 1000 usuarios simultáneos (también exagerando un poco) tendríamos un aproximado de 120,000 consultas por minuto. entonces 120,000 / 60. tenemos 2000 consultas por segundo. así que no seria soportado???

Supongo que ademas entre mas registros a la BD mas lenta cada operación.. así que estoy pidiendo mucho??
__________________
Me gusta desarrollar aplicaciones para Android, y me considero bueno para el PHP, Javascript y el AS3.

AH! y agradezco puntitos jeje (si mis respuestas te ayudan).

Etiquetas: php, servidor
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 04:05.