MySQL 行挿入の最適化: 超高速一括挿入の実現
この記事では、MySQL への効率的な行挿入のニーズについて説明します。データベース。挿入時間を大幅に短縮し、データベース全体のパフォーマンスを向上させる最適化されたソリューションを紹介します。
バックグラウンド
多くの開発者は、大量のデータを MySQL に挿入するときにパフォーマンスのボトルネックに遭遇します。個々の SQL ステートメントを使用するループベースのアプローチは機能しますが、非効率的で時間がかかる可能性があります。
問題ステートメント
提供された例では、ループベースのコードは次のようになります。 MySQL データベースに 100,000 行を挿入するのに 40 秒かかり、より効率的なデータベースの必要性が強調されています。
解決策
ループベースのアプローチを、StringBuilder を使用した一括挿入手法に置き換えて、一度に挿入される複数の行を含む単一の SQL ステートメントを構築します。 。このアプローチを利用することで、パフォーマンスが大幅に向上します。
サンプル コード
最適化されたコードを以下に示します。
public static void BulkToMySQL() { string ConnectionString = "server=192.168.1xxx"; StringBuilder sCommand = new StringBuilder("INSERT INTO User (FirstName, LastName) VALUES "); using (MySqlConnection mConnection = new MySqlConnection(ConnectionString)) { List<string> Rows = new List<string>(); for (int i = 0; i < 100000; i++) { Rows.Add(string.Format("('{0}','{1}')", MySqlHelper.EscapeString("test"), MySqlHelper.EscapeString("test"))); } sCommand.Append(string.Join(",", Rows)); sCommand.Append(";"); mConnection.Open(); using (MySqlCommand myCmd = new MySqlCommand(sCommand.ToString(), mConnection)) { myCmd.CommandType = CommandType.Text; myCmd.ExecuteNonQuery(); } } }
結果
一括挿入アプローチを使用すると、 100,000 行が 40 秒からわずか 3 秒に短縮され、93% の驚くべきパフォーマンスの向上が実証されました。
追加の考慮事項
結論
この一括挿入手法を実装することにより、開発者は MySQL データベース挿入操作の効率を大幅に向上させることができます。この方法により、挿入時間が短縮され、全体的なパフォーマンスが向上し、追加されたセキュリティ対策によりデータの整合性が確保されます。
以上がMySQL への行の超高速一括挿入を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。