PDA

Ver la versión completa : PHP Meter objetos completos en sesión o hacer consultas a MySQL cada tres por dos..



anakinmay
20/12/2016, 17:33
Hola chicos, sigo avanzando con mi proyecto y ahora mismo me surgen ciertas dudas sobre consultas y sesiones.

No se si compensa ni hasta que cantidad es recomendable meter datos en la sesión.

Se me plantea la duda que en varias partes de la aplicación WEB que estoy haciendo tengo varios objetos que voy creando para mostrarlos en pantalla..

Por ahora hago consultas cada vez que se van a mostrar, pero no se si sería más rápido meter todos los objetos en la sesión cuando se inicie esta e ir tirando de ella para mostrarlos allí donde haga falta. Creo que puede ser mejor solución, pero no estoy seguro.

Así que consulto a los expertos, espero vuestras respuestas.

Creo que tenerlos en la sesión me facilitaría mucho el trabajo, aunque tenga que rehacer parte del código.

No solo es para el proyecto, mi idea es hacer una aplicación que pueda aplicar con los chicos en mi curro.

Gracias!!!

Espero las respuestas de los maestros!!!

Wave
20/12/2016, 17:41
Pues como siempre, todo depende del uso de la aplicación. Si son pocos datos y se acceden mucho(y varían poco o nada para ese usuario), a sesión.
También para no tener que tocar demasiado puedes buscar una solución de cache de consultas y envolver las tuyas con ella y tener algo mas transversal.

Enviado desde mi Redmi Note 2 mediante Tapatalk

anakinmay
20/12/2016, 17:49
No se.. entre 50 o 100 objetos que saldrían por sesión, en muchos casos muchos menos, eso sería el tope..

Que eso de una caché de consultas??

otto_xd
20/12/2016, 17:54
Cache en memoria, o en un servicio tipo redis mucho mas rapido.

Cuanto mas stateless sea tu MW mejor

-----Actualizado-----


No se.. entre 50 o 100 objetos que saldrían por sesión, en muchos casos muchos menos, eso sería el tope..

Que eso de una caché de consultas??

https://www.percona.com/blog/2015/01/02/the-mysql-query-cache-how-it-works-and-workload-impacts-both-good-and-bad/

amkam
21/12/2016, 00:39
Respuesta rapida: tienes problemas de rendimiento que necesites solventar ahora ?
Respuesta mas larga: Si prevés un problema de rendimiento por lanzar demasiadas consultas, mira a ver si puedes cachear las consultas en la base de datos, por otro lado, si usas un framework (como laravel), no tienes algo para cachear?, y luego, si lo ves necesario, a soluciones más complejas. Meter un Redis, memcache, hazelcast, etc. debe ser tu ultima opcion (mucha gente ha implementado con éxito cachés en mysql).