MySQLi での一括 INSERT 操作の最適化: 安全で効率的なアプローチ
MySQL データベースに大量のデータを挿入するには、セキュリティとパフォーマンスの両方。この記事では、SQL インジェクションのリスクを軽減しながら、テーブルに多数の行を効率的に挿入する方法について説明します。
ループ内で複数のプリペアド ステートメントを利用する提供されたコードは、パフォーマンスのボトルネックと潜在的なスタック オーバーフローの問題を引き起こす可能性があります。 。より良いアプローチは、挿入をトランザクション内に配置し、準備されたステートメントとパラメーター バインディングをループの外に移動することです。
$mysqli->query("START TRANSACTION"); $query = "INSERT INTO table (link) VALUES (?)"; $stmt = $mysqli->prepare($query); $stmt->bind_param("s", $one); foreach ($array as $one) { $stmt->execute(); } $mysqli->query("COMMIT");
トランザクションには、一括挿入に対していくつかの利点があります。
パフォーマンス テストでは、挿入をトランザクションに移動すると、速度が大幅に向上しました。 10,000 回の反復では、実行時間はトランザクションなしの 226 秒からトランザクションありのわずか 2 秒に短縮されました。
このアプローチは、SQL の潜在的なリスクを軽減しながら、大規模なデータセットを MySQL データベースに挿入する安全かつ効率的なメカニズムを提供します。インジェクションとパフォーマンスのボトルネック。
以上がMySQLi で大量の INSERT 操作を安全かつ効率的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。