TOP書籍連動> クエリキャッシュ




まるごと PostgreSQL!
商用データベースに匹敵するWebシステム構築手法

第7回:クエリキャッシュとキャッシュの効果

著者:大垣靖男(OHGAKI, Yasuo)   2005/5/11
1   2  3  次のページ
クエリキャッシュ

   ページ全体やページの一部をキャッシュすることが適切でない場合もあります。このような場合も、クエリをキャッシュすることによりパフォーマンスを大幅に向上することが可能です。ここでもSquidを使用すると、高性能なクエリキャッシュシステムを簡単に構築できます(図21)。キャッシュヒット率が高いデータをキャッシュさせると、高い効果が期待できます。
クエリキャッシュ
図21:クエリキャッシュ


   PHPについては、リモートファイルの読み込みをサポートしているため、リスト9、リスト10のようなスクリプトを用意します。

リスト9:サーバー側PHPスクリプトの例(出力はSquidにキャッシュ)
<?php
// query_result.php
// 600秒間キャッシュを許可
header('Cache-Control: public, max-age=600');
$db = pg_connect('dbname=foo');
$rec = pg_select($db, 'somedb', $_GET);
// PHPがスクリプトとして読み込み可能な
// 形式でレコード変数を出力
echo '<?php $rec = ';
var_export($rec);
echo '?>';
?>

リスト10:クライアント側PHPスクリプトの例
<?php
include(‘http://some_db_cache _server/query_result.php?id=1234');
var_dump($rec); // query_ result.phpで設定された変数をダンプ
?>
キャッシュの効果

   これまで紹介してきたキャッシュがどの程度の効果があるか、簡単なベンチマークを行ってみます。テストに利用したのは次のスペックのPCです。データベースサーバー、Webサーバー、キャッシュサーバー、クライアントとして使用しました。

  • 環境 … PC3台
  • CPU … Pentium 4 2.4GHz
  • メモリ … 1GB
  • HDD … UATA 133/7200rpm
  • NIC … 100Mbps(スイッチングHUBへ接続)

   データベースのデータには、日本郵政公社が公開している郵便番号情報(http://www.post.japanpost.jp/zipcode/download.html)を、PostgreSQLに登録して使用しました。データ件数は約12万件あります。

   テストには、自作したPHPスクリプトおよびab(Apache Bench)コマンドを使用しました。abコマンドを使用したテストでは、コマンドは外部の別のPCから実行し、「ab -c 100 -n 10000 <URL>」として、同時接続100で10000リクエストを送信しました。

1   2  3  次のページ

書籍紹介
まるごと PostgreSQL! Vol.1
まるごと PostgreSQL! Vol.1 日本での市場シェアNo.1(オープンソースRDBMS部門)データベースソフトPostgreSQLの最新情報を、開発メンバーを含む豪華執筆陣が多面的かつ詳細に解説します。PostgreSQL用クラスタリング/レプリケーションソフト、PostgreSQL⇔Oracle移行、PostgreSQLによる大規模サイト構築法、新バージョンPostgreSQL 8.0先行レビュー、PostgreSQL用.NETデータプロバイダ等々、他では読めない貴重な記事が満載です。
発売日:2004/12/08発売
定価:\1,890(本体 \1,800+税)
大垣 靖男
著者プロフィール
大垣靖男(OHGAKI, Yasuo)
University of Denver卒。同校にてコンピュータサイエンスとビジネスを学ぶ。株式会社シーエーシーを経て、エレクトロニック・サービス・イニシアチブ有限会社を設立。Linuxはバージョン0.9xの黎明期から利用してるが、オープンソースシステム開発やコミュニティへの参加はエレクトロニック・サービス・イニシアチブ設立後から。PHPプロジェクトのPostgreSQLモジュールのメンテナ、日本PostgreSQLユーザ会の四国地域での活動等を担当している。


この記事の評価をお聞かせください
ボタンをクリックしますとウインドウが開きます。
ご意見、ご要望にお応えします! インプレスIT INSIDE

INDEX
第7回:クエリキャッシュとキャッシュの効果
クエリキャッシュ
  クエリキャッシュの効果
  出力キャッシュの効果
商用データベースに匹敵するWebシステム構築手法
第1回 PostgreSQLの現状
第2回 Webシステムの高速化
第3回 アクセス分散の基礎とラウンドロビンDNS
第4回 アクセス分散とスケールアウトの条件
第5回 HTTPセッションの永続性確保
第6回 HTTPキャッシュと出力キャッシュ
第7回 クエリキャッシュとキャッシュの効果
第8回 HTTPキャッシュの効果
第9回 メッセージダイジェスト関数
第10回 メッセージダイジェスト関数の実装

Think IT 過去人気記事

注目おすすめ情報

Think IT人気ライター BEST 5

IT製品/サービス資料ダウンロード
    おすすめのホワイトペーパー情報を準備中です