複数の値を使用した MySQLi での効率的かつ安全な INSERT 操作
データベースへの大量のデータの挿入は、特に次の場合にパフォーマンス上の課題となる可能性があります。 SQL インジェクション攻撃に対するセキュリティを維持することになります。 PHP と MySQLi は、データの整合性を確保しながらこの問題に取り組むためのさまざまなアプローチを提供しています。
提供されたコードでは、配列内の値ごとにループ内でパラメーターを準備してバインドするという単純なアプローチが使用されています。ただし、この方法では、プロセスが反復されるため、大規模なデータセットのパフォーマンスの問題が発生する可能性があります。
推奨される手法は、トランザクションを利用することです。トランザクションは複数の操作を 1 つのユニットにグループ化し、それらがすべて適用されるか、まったく適用されないことを保証します。最適化されたコード
$mysqli->query("START TRANSACTION"); foreach ($array as $one) { $stmt->execute(); } $mysqli->query("COMMIT");
に示すように、トランザクション内に挿入クエリを含めることで、パフォーマンスを大幅に向上させることができます。トランザクションにより、各クエリを個別に実行するオーバーヘッドが削減され、実行時間が短縮されます。
さらに、最適化されたコードは、これらの操作をループの外で実行することにより、prepare() と binding_param() の呼び出しの数を最小限に抑えます。これにより、処理時間がさらに短縮されます。
パフォーマンス テストの結果
これらの最適化の有効性を実証するために、Web サーバーで 10,000 回の反復テストが実施されました。結果は次のとおりです。
トランザクションを使用すると、次の 2 つの順序になりました。マグニチュードの速度が向上し、大規模なデータセットを扱う際のパフォーマンス向上の可能性を示しています。
以上がトランザクションによって、複数の値を使用した MySQLi INSERT 操作がどのように大幅に高速化されるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。