Užklausos į duomenų bazę cache’avimas

Lygiai su tokia problema ir man teko susidurti, kaip šio rašinio autoriui. Kada užkešuoti kontrolerio funkciją neužtenka, nes ji gražina du ar daugiau skirtingus duomenų kiekius. Šis sprendimas leidžia kešuoti kiekvieną užklausimą į duomenų bazę atskirai:

  1. // Cache query to /tmp/cache/sql/model-test_sql_query
  2. $results = $this->Model->find('all', array(
  3.  'cache' => 'test_sql_query'
  4. ));
  5.  
  6. // Cache query to /tmp/cache/sql/model-another_query that expires in 24 hours
  7. $results = $this->Model->find('all', array(
  8.  'cache' => array('another_query', '+24 hours')
  9. ));

Visa dokumentacija bei kodas – milesj.me

Data 2009.04.17

2 Responses to “Užklausos į duomenų bazę cache’avimas”

  1. aurimas says:

    sita problema turejau ir as, tik isprendziau naudodamas nocache taga, bet sitas sprendimas atrodo svaresnis. O kaip su cache trinimu? pvz jei update padarai kazkokiam irasui, trinti visa kataloga sql?

  2. Mindaugas says:

    Nors asmeniškai dar nebandžiau, bet iš kodo sprendžiant cache’as neatsinaujina po update.

Leave a Reply