<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>

<title>CodeIgniter User Guide : Database Caching Class</title>

<style type='text/css' media='all'>@import url('../userguide.css');</style>
<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' />

<script type="text/javascript" src="../nav/nav.js"></script>
<script type="text/javascript" src="../nav/prototype.lite.js"></script>
<script type="text/javascript" src="../nav/moo.fx.js"></script>
<script type="text/javascript">
window.onload = function() {
	myHeight = new fx.Height('nav', {duration: 400});
	myHeight.hide();
}
</script>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv='expires' content='-1' />
<meta http-equiv= 'pragma' content='no-cache' />
<meta name='robots' content='all' />
<meta name='author' content='Rick Ellis' />
<meta name='description' content='CodeIgniter User Guide' />

</head>
<body>

<!-- START NAVIGATION -->
<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div>
<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle.jpg" width="153" height="44" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
<div id="masthead">
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td><h1>CodeIgniter User Guide Version 1.5.4</h1></td>
<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td>
</tr>
</table>
</div>
<!-- END NAVIGATION -->


<!-- START BREADCRUMB -->
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td id="breadcrumb">
<a href="http://www.codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp;
<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp;
Database Caching Class
</td>
<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
</tr>
</table>
<!-- END BREADCRUMB -->


<br clear="all" />


<!-- START CONTENT -->
<div id="content">

<h1>Database Caching Class</h1>

<p>The Database Caching Class permits you to cache your queries as text files for reduced database load.</p>

<p class="important"><strong>Important:</strong>&nbsp; This class is initialized automatically by the database driver
when caching is enabled.  Do NOT load this class manually.<br /><br />

<strong>Also note:</strong>&nbsp; Not all query result functions are available when you use caching. Please read this page carefully.</p>

<h2>Enabling Caching</h2>

<p>Caching is enabled in three steps:</p>

<ul>
<li>Create a writable directory on your server where the cache files can be stored.</li>
<li>Set the path to your cache folder in your <dfn>application/config/database.php</dfn> file.</li>
<li>Enable the caching feature, either globally by setting the preference in your <dfn>application/config/database.php</dfn> file, or manually as described below.</li>
</ul>

<p>Once enabled, caching will happen automatically whenever a page is loaded that contains database queries.</p>


<h2>How Does Caching Work?</h2>

<p>CodeIgniter's query caching system happens dynamically when your pages are viewed.
When caching is enabled, the first time a web page is loaded, the query result object will
be serialized and stored in a text file on your server. The next time the page is loaded the cache file will be used instead of
accessing your database.  Your database usage can effectively be reduced to zero for any pages that have been cached.</p>

<p>Only <dfn>read-type</dfn> (SELECT) queries can be cached, since these are the only type of queries that produce a result.
<dfn>Write-type</dfn> (INSERT, UPDATE, etc.) queries, since they don't generate a result, will not be cached by the system.</p>

<p>Cache files DO NOT expire.  Any queries that have been cached will remain cached until you delete them.  The caching system
permits you clear caches associated with individual pages, or you can delete the entire collection of cache files.
Typically you'll to use the housekeeping functions described below to delete cache files after certain
events take place, like when you've added new information to your database.</p>

<h2>Will Caching Improve Your Site's Performance?</h2>

<p>Getting a performance gain as a result of caching depends on many factors.
If you have a highly optimized database under very little load, you probably won't see a performance boost.
If your database is under heavy use you probably will see an improved response, assuming your file-system is not
overly taxed.  Remember that caching simply changes how your information is retrieved, shifting it from being a database
operation to a file-system one.</p>

<p>In some clustered server environments, for example, caching may be detrimental since file-system operations are so intense.
On single servers in shared environments, caching will probably be beneficial. Unfortunately there is no
single answer to the question of whether you should cache your database.  It really depends on your situation.</p>

<h2>How are Cache Files Stored?</h2>

<p>CodeIgniter places the result of EACH query into its own cache file.  Sets of cache files are further organized into
sub-folders corresponding to your controller functions.  To be precise, the sub-folders are named identically to the
first two segments of your URI (the controller class name and function name).</p>

<p>For example, let's say you have a controller called <dfn>blog</dfn> with a function called <dfn>comments</dfn> that
contains three queries.  The caching system will create a cache folder
called <kbd>blog+comments</kbd>, into which it will write three cache files.</p>

<p>If you use dynamic queries that change based on information in your URI (when using pagination, for example), each instance of
the query will produce its own cache file.  It's possible, therefore, to end up with many times more cache files than you have
queries.</p>


<h2>Managing your Cache Files</h2>

<p>Since cache files do not expire, you'll need to build deletion routines into your application.  For example, let's say you have a blog
that allows user commenting.  Whenever a new comment is submitted you'll want to delete the cache files associated with the
controller function that serves up your comments.  You'll find two delete functions described below that help you
clear data.</p>


<h2>Not All Database Functions Work with Caching</h2>

<p>Lastly, we need to point out that the result object that is cached is a simplified version of the full result object. For that reason,
some of the query result functions are not available for use.</p>

<p>The following functions <kbd>ARE NOT</kbd> available when using a cached result object:</p>

<ul>
<li>num_fields()</li>
<li>field_names()</li>
<li>field_data()</li>
<li>free_result()</li>
</ul>

<p>Also, the two database resources (result_id and conn_id) are not available when caching, since result resources only
pertain to run-time operations.</p>


<br />

<h1>Function Reference</h1>



<h2>$this->db->cache_on()&nbsp; / &nbsp; $this->db->cache_off()</h2>

<p>Manually enables/disables caching.  This can be useful if you want to
keep certain queries from being cached.  Example:</p>

<code>
// Turn caching on<br />
$this->db->cache_on();<br />
$query = $this->db->query("SELECT * FROM mytable");<br />
<br />
// Turn caching off for this one query<br />
$this->db->cache_off();<br />
$query = $this->db->query("SELECT * FROM members WHERE member_id = '$current_user'");<br />
<br />
// Turn caching back on<br />
$this->db->cache_on();<br />
$query = $this->db->query("SELECT * FROM another_table");
</code>


<h2>$this->db->cache_delete()</h2>

<p>Deletes the cache files associated with a particular page. This is useful if you need to clear caching after you update your database.</p>

<p>The caching system saves your cache files to folders that correspond to the URI of the page you are viewing.  For example, if you are viewing
a page at <dfn>www.your-site.com/index.php/blog/comments</dfn>, the caching system will put all cache files associated with it in a folder
called <dfn>blog+comments</dfn>.  To delete those particular cache files you will use:</p>

<code>$this->db->cache_delete('blog', 'comments');</code>

<p>If you do not use any parameters the current URI will be used when determining what should be cleared.</p>


<h2>$this->db->cache_delete_all()</h2>

<p>Clears all existing cache files.  Example:</p>

<code>$this->db->cache_delete_all();</code>










</div>
<!-- END CONTENT -->


<div id="footer">
<p>
Previous Topic:&nbsp;&nbsp;<a href="call_function.html">Custom Function Calls</a>
&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
Next Topic:&nbsp;&nbsp;<a href="utilities.html">Database Utilities Class</a>
</p>
<p><a href="http://www.codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2007 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">Ellislab, Inc.</a></p>
</div>

</body>
</html>