sql >> Database teknologi >  >> RDS >> Mysql

Cache data i PHP SESSION, eller forespørgsel fra db hver gang?

Hvis dine data bruges på alle sider og er ens for alle brugere, ville jeg ikke cache dem i $_SESSION (hvilket betyder at have en anden kopi af disse data for hver bruger), men med en anden mekanisme, såsom :

  • fil
  • I hukommelsen, med APC for eksempel (hvis kun 1 server)
  • I hukommelsen, med memcached, for eksempel (hvis du har flere servere)
  • Hvis dine data kræver lange beregninger eller flere DB-forespørgsler, der skal indhentes, kan cachelagring i databasen være en anden mulighed (vil kun betyde 1 forespørgsel at hente tilbage og færre beregninger)


Hvis dine data ikke er de samme for hver bruger (hvilket ser ud til at være tilfældet i din situation, da du cachelagrer navne, fødselsdatoer, ...) :

  • Jeg vil sørge for, at jeg kun cacher det nødvendige
  • Når du kun har nogle få data at cache, burde det være helt OK at sætte dem i session.
  • Hvis du virkelig har så mange brugere, vil du sandsynligvis have nogle andre skalerbarhedsproblemer, og vil højst sandsynligt komme til at bruge noget som memcached alligevel; hvilket betyder, at du har en anden måde at cache på;-)

Som en sidenote:hvis du laver den samme forespørgsel igen og igen, skal din DB-server cache den af ​​sig selv (for MySQL ville den gå ind i "forespørgselscache "); så det ville ikke være så slemt, som du tror, ​​formoder jeg -- selvom det ikke er så meget optimeret ^^



  1. Hent Insert Statement for eksisterende række i MySQL

  2. SQL Server-databaseomfangede konfigurationer og automatisk plankorrektion

  3. VIS TABELLER i MySQL

  4. Sådan installeres MySQL på Debian 7