sql >> データベース >  >> RDS >> Mysql

エミュレートされたプリペアドステートメントと実際のプリペアドステートメント

    正解です。実際に準備されたステートメントはサーバーでサポートされている必要があります。実際に準備されたということは、2つのステップでデータベースにクエリを実行することを意味します。

    最初のステップは、サーバーがプリコンパイルできるクエリテンプレートを送信することです。データベースエンジンは、実行プラン(ほとんどの場合、実際のクエリを提供するために使用されるインデックス)も事前に準備します。

    2番目のステップは、プレースホルダーに実際の値を指定し、これらのパラメーターを使用して実際のクエリを実行することです。

    これにより、通常、いくつかの同様のクエリをより高速に実行できます。これは、1。クエリが既にプリコンパイルされており(実行プランがすでに計算されている)、2。パラメータ値のみが後で送信されるためです。

    エミュレートされたクエリは単なる構文糖衣であり、複数の連続した同様のクエリの送信を容易にします(実行を高速化することはできません)。エミュレートされたクエリが実行されるたびに、完全なSQLステートメントがサーバーに送信されます。

    サーバーが実際のプリペアドステートメントをサポートしていない場合でも、エミュレートされたプリペアドステートメントを使用することをお勧めします。これは、ドライバーが値のエスケープを処理し、SQLインジェクションの可能性を低くするためです。



    1. MySQLの出力ファイルへのエクスポート:CSVエスケープ文字

    2. PHP登録フォームからMysqlに日付が保存されない

    3. Entity FrameworkがネストされたSQLクエリを生成するのはなぜですか?

    4. SQLServerデータベーススナップショット-2