Mysql
 sql >> база данни >  >> RDS >> Mysql

Кеширане на данни в PHP SESSION или заявка от db всеки път?

Ако вашите данни се използват на всички страници и са еднакви за всички потребители, не бих ги кеширал в $_SESSION (което означава да имам различно копие на тези данни за всеки потребител), а с друг механизъм, като :

  • файл
  • В паметта, с APC например (ако има само 1 сървър)
  • В паметта, с memcached, например (ако имате няколко сървъра)
  • Ако данните ви изискват дълги изчисления или няколко DB заявки, за да бъдат получени, кеширането им в базата данни може да бъде друга възможност (би означавало само 1 заявка за обратно извличане и по-малко изчисления)


Ако данните ви не са еднакви за всеки потребител (което изглежда е така във вашата ситуация, тъй като кеширате имена, рождени дати, ...) :

  • Ще се уверя, че кеширам само това, което е необходимо
  • След като имате само няколко данни за кеширане, поставянето им в сесия трябва да е съвсем наред
  • Ако наистина имате толкова много потребители, вероятно ще имате някои други проблеми с мащабируемостта и най-вероятно ще използвате нещо като memcached така или иначе; което означава, че ще имате друг начин за кеширане;-)

Като странична бележка:ако правите една и съща заявка отново и отново, вашият DB сървър трябва да го кешира сам (за MySQL той ще влезе в "кеш на заявки "); така че не би било толкова лошо, колкото си мислите, предполагам - дори и да не е толкова оптимизирано ^^



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Персонализирана ORDER BY за игнориране на 'the'

  2. Как да принудим MySQL да приеме 0 като валидна стойност за автоматично увеличение

  3. Отказ на база данни в Jboss източници на данни

  4. Използване на DATE_ADD с име на колона като стойност на интервала

  5. Свържете се с mysql база данни чрез SSH през PHP