<?php
//首先查看緩存文件
if(file_exists("statichtml")){
//緩存時間為分鐘
if(time()filemtime("statichtml")<*){
//將靜態文件內容返回給客戶端
$start_time = microtime();
echo "我是從靜態文件中讀取的數據:""<br/>";
echo file_get_contents("statichtml");
$end_time = microtime();
echo "靜態文件使用時間:"($end_time$start_time);
exit;
}
}
//如果是首次訪問或者是上次緩存的時間超過分鐘則從數據庫中讀取數據
$host = "";
$user = "root";
$password = "";
//記錄開始時間
$start_time = microtime();
mysql_connect($host$user$password);
mysql_select_db("mydb");
mysql_query("set names utf");
$sql = "SELECT nameaddressemail FROM users";
$resource = mysql_query($sql);
echo "我是從數據庫中讀取的數據:<br/>";
ob_start();//打開輸出緩沖
echo "<table border=><tr><th>姓名</th><th>地址</th><th>Email</th></tr>";
//輸出取得的信息
while($userInfo = mysql_fetch_assoc($resource)){
echo "<tr>";
echo "<td>"$userInfo[name]"</td>";
echo "<td>"$userInfo[address]"</td>";
echo "<td>"$userInfo[email]"</td>";
echo "</tr>";
}
$end_time=microtime();
$str=ob_get_contents();//獲取緩沖區的內容
ob_end_flush();
echo "從數據庫讀數據的時間:"($end_time$start_time);
file_put_contents("statichtml"$str);
?>
users表中有三條記錄使用的是apache服務測試結果如下
從數據庫中讀數據其平均執行時間為:s左右
直接讀緩存文件期平均執行時間為:
數據庫中的記錄只有三條SQL也是簡單的單表查詢當表的中記錄很多時或者是多表查詢其執行的時間將會更長緩存雖然能夠減少訪問數據庫的次數加速響應時間但緩存並不適合所有的頁面有些頁面可能每次訪問時其頁面的顯示的內容就會發生變化這樣的頁面顯然不能使用緩存對於那些變化很少的頁面才比較適合使用緩存
From:http://tw.wingwit.com/Article/program/PHP/201311/21026.html