TOP書籍連動> WebシステムのバックエンドとしてのPostgreSQL




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

第1回:PostgreSQLの現状

著者:大垣靖男(OHGAKI, Yasuo)   2005/4/18
1   2  次のページ
WebシステムのバックエンドとしてのPostgreSQL

   結論から述べると、PostgreSQLは、Webシステムのバックエンドシステムに適しています。PostgreSQLはMySQLと同様に、Webシステムのデータベースサーバーとしてよく利用されています。実際、現在稼働しているPostgreSQLサーバーの多くがWebシステムのバックエンドとして動いていると思われます。
PostgreSQLとMySQLのシェアの違い

   ホスティングサービスアプリケーションのサポート状況や各種の統計情報からすると、全世界的には、Webシステムのデータベースサーバーのシェアは、MySQLの方がかなり多いと考えられます。これにはいろいろな要因が考えられますが、最近まではPostgreSQLよりMySQLの方がWebシステムのバックエンド、特にレンタルサーバー用途に適していたため、ほとんどのレンタルサーバーサービスにMySQLが採用されていたのが大きいと考えられます。

   PostgreSQLがMySQLよりシェアが少ないことに対するシステム上の要因は、次の3つが考えられます。

  1. PostgreSQLはデータベースの最大同時接続数がMySQLより少なかった
  2. PostgreSQLはデータベース単位でのデータベースサーバーを複数ユーザーで共有する環境を構築しづらかった
  3. MySQLは単純なクエリの実行速度が速い

   現在PostgreSQLは、商用のデータベースシステムと比較しても、Webシステムのバックエンドシステムとして必要かつ十分な機能と性能を持っています。速度面では、もともとトランザクションをサポートせず単純クエリの高速化に特化していたMySQLが高速であることは今でも変わりありませんが、MySQLと比べて見劣りしていた(1)と(2)は現在のPostgreSQLでは解消されています。

それでは、現在のPostgreSQLの機能を見ていきましょう。


同時接続数

   古いバージョンのPostgreSQLでは100を超えるデータベース接続を作成することは難しかったのですが、今は簡単に100以上の接続をサポートできます。PostgreSQLのデフォルト接続数はMySQLと同じ100接続に設定され、数百のクライアントからデータベースを同時に利用することもできます。現在のPostgreSQLの最大スループットは、100〜200接続がほとんどのようです。


SCHEMAのサポート

   現在のPostgreSQLはSCHEMAをサポートし、ユーザーのアクセス権限をスキーマ単位で設定できるようになりました。これにより、レンタルサーバー事業者は、MySQLサーバーと同じ程度の設定で、顧客単位のデータベースオブジェクトへのアクセス権限を付与することが可能になりました。


MySQLは他のクエリの影響を受ける?

   MySQLは単純なクエリの処理はかなり高速です。しかしクエリの組み合わせによっては極端にパフォーマンスが低下する場合があります。筆者は、Webサイト上に公開されていたPHPのセッションセーブハンドラを実行した際にこれに気が付きました。PostgreSQLは97セッション/秒で処理を行えたのですが、MySQL(InnoDB)では17セッション/秒しか処理できませんでした。このことにより、PostgreSQLのクエリ実行速度は極端に速いわけではありませんが、他のクエリに影響されて性能が極端に悪くなることはないと考えられます。
1   2  次のページ

書籍紹介
まるごと 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ユーザ会の四国地域での活動等を担当している。


この記事の評価をお聞かせください
ボタンをクリックしますとウインドウが開きます。

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