diff options
author | Florian Pritz <bluewind@xinu.at> | 2015-04-08 01:05:46 +0200 |
---|---|---|
committer | Florian Pritz <bluewind@xinu.at> | 2015-04-08 01:05:46 +0200 |
commit | 814c2b44fcc500d2f8f2acb7c9443079908ddaa2 (patch) | |
tree | 173d0dbe656bfbc654583e4556c2bbe0482da49d /application/models | |
parent | d191251243863015f70f758d95c2dd02a9270484 (diff) |
Cache filedata
This brings down render time of a multipaste with 180 items from ~180ms
to ~80ms.
Signed-off-by: Florian Pritz <bluewind@xinu.at>
Diffstat (limited to 'application/models')
-rw-r--r-- | application/models/mfile.php | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/application/models/mfile.php b/application/models/mfile.php index 724994f83..9af0ed497 100644 --- a/application/models/mfile.php +++ b/application/models/mfile.php @@ -69,18 +69,20 @@ class Mfile extends CI_Model { function get_filedata($id) { - $query = $this->db - ->select('id, hash, filename, mimetype, date, user, filesize') - ->from('files') - ->where('id', $id) - ->limit(1) - ->get(); - - if ($query->num_rows() > 0) { - return $query->row_array(); - } else { - return false; - } + return cache_function("filedata-$id", 300, function() use ($id) { + $query = $this->db + ->select('id, hash, filename, mimetype, date, user, filesize') + ->from('files') + ->where('id', $id) + ->limit(1) + ->get(); + + if ($query->num_rows() > 0) { + return $query->row_array(); + } else { + return false; + } + }); } // return the folder in which the file with $hash is stored @@ -214,6 +216,7 @@ class Mfile extends CI_Model { $this->db->where('id', $id) ->delete('files'); + delete_cache("filedata-$id"); foreach ($map as $entry) { assert(!empty($entry['url_id'])); |