MySQL 5.6 リファレンスマニュアル  /  ...  /  C API プリペアドステートメント

23.8.8 C API プリペアドステートメント

MySQL クライアント/サーバープロトコルはプリペアドステートメントの使用を規定します。この機能は、mysql_stmt_init() 初期化関数によって返される MYSQL_STMT ステートメントハンドラデータ構造を使用します。プリペアド実行はステートメントを複数回実行するための効率的な方法です。ステートメントはまずその実行を準備するために解析されます。その後、初期化関数によって返されるステートメントハンドルを使用して、1 回または複数回実行されます。

プリペアド実行は、主にクエリーが 1 回しか解析されないため、複数回実行されるステートメントの場合に、直接実行より高速になります。直接実行の場合、クエリーは実行されるたびに解析されます。さらに、プリペアド実行は、プリペアドステートメントの実行ごとに、パラメータにデータを送信する必要があるだけであるため、ネットワークトラフィックの削減も実現できます。

プリペアドステートメントは、状況によっては、パフォーマンスの向上をもたらさない場合があります。最善の結果を得るため、プリペアドステートメントと非プリペアドステートメントの両方でアプリケーションをテストし、最高のパフォーマンスを発揮するものを選択してください。

プリペアドステートメントのもう 1 つの利点は、それがクライアントとサーバー間のデータ転送の効率を向上するバイナリプロトコルを使用することです。

プリペアドステートメントとして使用できる SQL ステートメントのリストについては、セクション13.5「準備済みステートメントのための SQL 構文」を参照してください。

プリペアドステートメントによって参照されているテーブルやビューのメタデータの変更が検出され、それが次に実行されるときに、ステートメントが自動再準備されます。詳細については、セクション8.9.4「プリペアドステートメントおよびストアドプログラムのキャッシュ」を参照してください。


User Comments
Sign Up Login You must be logged in to post a comment.