この記事の内容は、MySQL 前処理テクノロジとは何かを紹介することです。前処理技術の使用。困っている友人は参考にしていただければ幸いです。
いわゆる前処理テクノロジは、もともとサーバーの負荷を軽減するテクノロジとして MySQL によって提案されました。
従来の mysql 処理プロセス
1、クライアントで SQL ステートメントを準備します
2、SQL ステートメントを MySQL サーバーに送信します
3、実行しますMySQL サーバー上の SQL ステートメント
4、サーバーは実行結果をクライアントに返します
このように、各 SQL ステートメントは 1 回リクエストされ、mysql サーバーはそれを受信して処理しますスクリプト ファイルが同じステートメントを要求する場合、何度も繰り返し実行すると MySQL サーバーの負荷が増加するため、サーバーの負荷を軽減するために MySQL の前処理が発生します。
前処理の基本戦略:
SQL ステートメントを強制的に 2 つの部分に分割します:
最初の部分は前と同じコマンドと構造部分です。
2 番目の部分は、それに続く変数データ部分です。
SQL 文を実行するときは、まず同じコマンドと構造部分を MySQL サーバーに送信し、事前に MySQL サーバーに前処理を行わせます。 (この時点では、SQL ステートメントは実際には実行されません。) SQL ステートメントの構造的整合性を確保するために、SQL ステートメントが初めて送信されるとき、SQL ステートメントの変数データ部分はデータ プレースホルダーによって表されます。疑問符のようなものですか?これは一般的なデータ プレースホルダーです。
MySQL の前処理には、パラメータを使用した前処理とパラメータを使用しない前処理の 2 つの形式があります。
1. パラメータを使用しない前処理
まずは表のデータを確認してください!
1. プリペアドステートメントの準備
「 #」からのステートメント名を準備します。 ##前処理された sqlstatement”;
prepare sql_1 from "select * from pdo";
2、前処理されたステートメントを実行します
実行
ステートメント名;
execute sql_1;
3. 前処理を削除します
drop prepare
ステートメント名;
drop prepare sql_1;
削除後は前処理ができなくなりますステートメント!
2. パラメータを使用した前処理1. プリペアドステートメントを準備します
prepare
「Preprocessed sqlstatement」からのステートメント名;
prepare sql_2 from "select * from pdo where id = ?";
2. パラメータ変数を定義します
#set @
変数名 =-- @ これは、MySQL で変数を定義するための文法形式です (php の $ 記号に似ています) set @id=2;
3. パラメーター変数を渡すそしてプリペアドステートメントを実行します
executeStatement name using
Parameter variable;execute sql_2 using @id; --选出id=2的信息
4. 前処理の削除
ステートメント名;
drop prepare sql_2;
##注: データ プレースホルダーが複数ある場合は、データ プレースホルダーの順序でパラメーターを渡すだけです:
prepare sql_2 from "select * from pdo where id > ? && age > ?";
set @id=2; set @age=30;
execute sql_2 using @id,@age;
ここでの不明なパラメータはステップ 1 のプレースホルダに対応する必要があることに注意してください。
上記は MySQL の前処理です。スクリプト ファイル内の SQL ステートメントを前処理する効果は明らかではありません。特定のステートメントを繰り返し実行すると、前処理の効率が向上します。
以上がMySQL の前処理テクノロジとは何ですか?前処理技術の使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。