INSERTクエリを実行するための最良の方法、または「練習」を見つけようとしています。私のソフトウェアは Visual Basic .NET で開発されており、MySQL リモート データベースにアクセスしています。毎日ループを実行し、少なくとも 50.000 レコードを挿入する必要があります。これをコーディングする最も最適化された方法は何でしょうか?.
今のところ、各レコードで接続を開き、INSERT クエリを送信しています。私はこれが最悪の方法であることを知っています。それが私がそれを改善するために取り組んでいる方法です。
ループ全体を小さなグループに分割し、それぞれ 1000 レコードのクエリを作成することを考えました。それほど大きくはありませんが、たくさんあります。
接続を維持し、接続、終了、接続などを回避するために、mysql_ping について何か読んだことがあります。このようにして、最初に作成された接続が 1 つだけでループを通過できました。
私は少し迷っています、あなたの推薦はどれですか?
君たちありがとう。
編集:これは、クエリを作成するために使用しているコードです:
Public Function MYSQL_QUERY(ByVal QUERY As String) As Long
Dim connStr As String = "Database=" & DB_NAME & ";" & _
"Data Source=" & DB_HOST & ";" & _
"User Id=" & DB_USER & ";Password=" & DB_PASSWORD
Try
Dim rowsEffected As Integer = 0
Dim connection As New MySqlConnection(connStr)
Dim cmd As New MySqlCommand(QUERY, connection)
connection.Open()
rowsEffected = cmd.ExecuteNonQuery()
connection.Close()
Return cmd.LastInsertedId
Exit Function
Catch ex As Exception
MsgBox(ex.Message)
Return -1
End Try
End Function
そして、ループの各 INSERT でこの関数を呼び出しています。