sql >> Base de Datos >  >> RDS >> Mysql

¿Caché de datos en PHP SESSION, o consulta desde db cada vez?

Si sus datos se usan en todas las páginas y son los mismos para todos los usuarios, no los almacenaría en caché en $_SESSION (lo que significa tener una copia diferente de esos datos para cada usuario), sino con otro mecanismo, como:

  • archivo
  • En memoria, con APC por ejemplo (si solo 1 servidor)
  • En memoria, con memcached, por ejemplo (si tiene varios servidores)
  • Si sus datos requieren cálculos largos o la obtención de varias consultas de base de datos, almacenarlos en caché en la base de datos podría ser otra posibilidad (significaría solo 1 consulta para recuperar y menos cálculos)


Si sus datos no son los mismos para cada usuario (que parece ser el caso en su situación, ya que está almacenando en caché nombres, fechas de nacimiento, ...) :

  • Me aseguraría de almacenar en caché solo lo necesario
  • Una vez que solo tenga unos pocos datos para almacenar en caché, ponerlos en sesión debería estar bastante bien
  • Si realmente tiene tantos usuarios, probablemente tendrá otros problemas de escalabilidad, y lo más probable es que llegue a usar algo como memcached de todos modos; lo que significa que tendrás alguna otra forma de almacenamiento en caché;-)

Como nota al margen:si está haciendo la misma consulta una y otra vez, su servidor de base de datos debe almacenarlo en caché por sí mismo (para MySQL, iría a "caché de consultas "); así que no sería tan malo como crees, supongo, aunque no esté tan optimizado ^^