無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

46.2. 接続の確立

PostgreSQL は単純な「1プロセスに1ユーザ」のクライアント/サーバモデルによって実装されています。 このモデルでは1つの サーバプロセス に対し厳密に1つの クライアントプロセス しか存在しません。 いくつの接続が行われるか事前にわからないので、接続要求の度に新しいプロセスを作る マスタープロセス を使わなければなりません。 このマスタープロセスは postgres と呼ばれ、指定されたTCP/IPポートで入ってくる接続要求を監視します。 接続要求を検出すると、 postgres プロセスは新しいサーバプロセスを生み出します。 このサーバのタスクは セマフォ 共有メモリ を活用してお互いに連絡を取り合い、同時にデータにアクセスしても整合性が保たれるようにします。

クライアントプロセスは 第48章 に記載された PostgreSQL プロトコルを理解できるどんなプログラムでも構いません。 多くのクライアントは libpq C言語ライブラリに基づいていますが、Java JDBC ドライバのようにいくつかの独立したプロトコル実装も存在します。

いったん接続が確立されると、クライアントプロセスは バックエンド (サーバ)に問い合わせを送ることができます。 問い合わせは平文で送信されます。 つまり、 フロントエンド (クライアント)は構文解析を行いません。 サーバは問い合わせの構文解析を行い、 実行計画 を作り、そして計画を実行し、抽出した行を確立された接続を通じてクライアントに返します。


powered by SEO.CUG.NET