PHPページ静態化実現
現在のWebサイトでは、データベースとのやり取りが一般的で、アクセスが大きいとデータベースに大きなプレッシャーがかかります.いくつかのダイナミックページで実行された結果をキャッシュし、次にアクセスするときに直接キャッシュにアクセスすることで、データベースへの圧力を低減できます.同時に、サーバの応答速度を速めることもできます.キャッシュの結果は、外部メモリに保存したり、メモリに保存したりできます.前回の結果は、次のページへのアクセス時に外部メモリ(メモリ)から直接読み込まれます.
usersテーブルにはapacheサービスを使用する3つのレコードがあります.テスト結果は次のとおりです.
データベースからデータを読み出す平均実行時間は0.0008041 s程度
ダイレクトリードキャッシュファイル期間の平均実行時間:0.0000475
データベースのレコードは3つしかありません.SQLも簡単な単一テーブルクエリーです.テーブルに多くのレコードが記録されている場合、または複数のテーブルクエリーが実行される時間が長くなります.キャッシュは、データベースへのアクセス回数を減らし、応答時間を短縮できますが、キャッシュはすべてのページに適していません.アクセスするたびにページの表示内容が変化するページもあります.このようなページではキャッシュは使用できません.キャッシュは、変化の少ないページに適しています.
<?php
//
if(file_exists("static.html")){
// 3
if(time()-filemtime("static.html")<60*3){
//
$start_time = microtime();
echo " :"."<br/>";
echo file_get_contents("static.html");
$end_time = microtime();
echo " :".($end_time-$start_time);
exit;
}
}
// , 3 ,
$host = "127.0.0.1";
$user = "root";
$password = "123456";
//
$start_time = microtime();
mysql_connect($host,$user,$password);
mysql_select_db("mydb");
mysql_query("set names utf8");
$sql = "SELECT name,address,email FROM users";
$resource = mysql_query($sql);
echo " :<br/>";
ob_start();//
echo "<table border='1'><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("static.html",$str);
?>
usersテーブルにはapacheサービスを使用する3つのレコードがあります.テスト結果は次のとおりです.
データベースからデータを読み出す平均実行時間は0.0008041 s程度
ダイレクトリードキャッシュファイル期間の平均実行時間:0.0000475
データベースのレコードは3つしかありません.SQLも簡単な単一テーブルクエリーです.テーブルに多くのレコードが記録されている場合、または複数のテーブルクエリーが実行される時間が長くなります.キャッシュは、データベースへのアクセス回数を減らし、応答時間を短縮できますが、キャッシュはすべてのページに適していません.アクセスするたびにページの表示内容が変化するページもあります.このようなページではキャッシュは使用できません.キャッシュは、変化の少ないページに適しています.