- include('adodb.inc.php'); # ADOdbに共通のコードをロード
- $ADODB_CACHE_DIR = '/usr/ADODB_cache';
- $conn = &ADONewConnection('mysql'); #接続を作成します
- $conn->PConnect('localhost','userid','','agora');# MySQL、agora dbに接続します
- $sql = '顧客からCustomerName、CustomerIDを選択';
- $rs = $conn->CacheExecute(15,$sql);
- ?>
-
上記のようにコードをコピーします
データをクエリするたびに、対応する結果がシリアル化され、ファイルに保存されます。将来的には、データベースに直接クエリを実行せずに、キャッシュ ファイルからクエリ ステートメントを取得できるようになります。
Smarty が提供するページ キャッシュ機能を見てみましょう:
-
require('Smarty.class.php'); - $smarty = new Smarty;
$smarty->キャッシュ= true;
if(!$smarty->is_cached('index.tpl')) {
- // 利用可能なキャッシュがありません。変数の割り当てをここで行います。
- $contents = get_database_contents() ;
- $smarty->assign($contents);
- }
- $smarty->display('index.tpl');
- ?>
-
-
コードをコピー
ページにアクセスするたびに、まず対応するキャッシュが存在するかどうかを確認し、存在しない場合はデータベースに接続してデータを取得し、テンプレート変数の割り当てを完了してページを表示し、キャッシュ ファイルを生成します。同時に、次回アクセスしたときにキャッシュ ファイルが存在し、if ブロックのデータ クエリ ステートメントが実行されなくなります。もちろん、有効期間の設定やキャッシュグループの設定など、実際に使用する際には考慮すべき点がたくさんあります。詳細については、Smarty マニュアルのキャッシュに関する該当の章を確認してください。
上記の 2 つの一般的な PHP コンポーネント キャッシュ方法は、Adodb のキャッシュではデータをキャッシュするのに対し、Smarty のキャッシュではページをキャッシュすることに焦点が異なります。キャッシュ機能を提供するコンポーネントは他にも多数あります (PEAR::Cache_Lite など)。実際のプログラミングでどのソリューションを使用するかには、特定の状況の具体的な分析が必要であり、包括的に使用することもできます。
これらのコンポーネントの組み込みキャッシュ ソリューションを使用する明らかな利点は、その実装がクライアントに対して透過的であることです。キャッシュの詳細を考えずに、必要な設定(キャッシュ時間、キャッシュ ディレクトリなど)を行うだけで、システムが設定に従って自動的にキャッシュを管理します。しかし、その欠点も明らかです。なぜなら、各リクエストは依然として PHP によって解析される必要があり、この場合、単に動的を実行するだけでは、純粋な静的リクエストと比較して効率が大幅に低下するからです。はい、キャッシュだけでは十分ではありません。静的キャッシュを実装する必要があります。
|