IT用語集 › データベース › プリペアドステートメント

プリペアドステートメント

データベース Svenska → 更新: 2026-10-22

プレースホルダ($1、?)を含むクエリのひな形を先に送り、パラメータは別に渡すSQLの方式。利点は主に2つ、SQLインジェクションの防止(パラメータはSQLとして解釈されない)と、実行計画のキャッシュである。

流れは、PREPARE(ひな形を送り、パーサーとプランナーが動く)、次にEXECUTE(値を送って計画を実行)。2回目以降は構文解析と計画作成を飛ばして実行に進める。代償として、プランナーは汎用プランを作るため、特定の値には最適でないことがある。PostgreSQLでは、汎用プランでの呼び出しが5回続いた後に、カスタムプランのほうが良いかを確認する。コネクションプールにも落とし穴がある。プリペアドステートメントはセッション単位なので、プール内の接続を全体で共有すると再準備が頻発する。PgBouncerのトランザクションモードでは、そもそも動かない。

← 用語集に戻る