PostgreSQLのクライアント接続と問い合わせ


🗻 クライアント/サーバ間の接続・通信

PostgreSQLのクライアント/サーバ間の接続の流れです。

  • クライアントからPostgreSQLに接続要求
  • クライアント/サーバ間で認証を実施
  • PostgreSQLがバックエンドプロセスを生成
  • クライアントとバックエンドプロセス間の接続を確立

🚜 問い合わせ

クライアントからのSQLクエリの問い合わせ処理の流れです。

機能 説明
パーサ/字句解析 SQLがどういった構文で構成されているかの解析を行います
パーサ/構文解析 構文解析の結果がSQLの記述ルールに準拠しているかの解析を行います。問題があればエラーを返します
パーサ/実在確認 テーブルやカラムがDB上に存在するかのチェックを行います。問題がなければツリー構造に変換
リライタ SQLを書き換えるルールがDBに設定されている場合に書き換えを実行します
プランナー 最適な実行計画の生成。テーブルのアクセス方法や結合方法を選択します。クエリツリーから、パス(全件スキャン、インデックス、テーブル結合)単位のコスト計算を行い、最小コストを問い合わせプランにします
エグゼキュータ 実行計画にしたがってDMLにもとづいてデータを抽出します

🎳 参考リンク

📚 おすすめの書籍

🖥 サーバについて

このブログでは「Cloud Garage」さんのDev Assist Program(開発者向けインスタンス無償提供制度)でお借りしたサーバで技術検証しています。 Dev Assist Programは、開発者や開発コミュニティ、スタートアップ企業の方が1GBメモリのインスタンス3台を1年間無料で借りれる心強い制度です!(有償でも1,480円/月と格安)