我试图找到最好的方法,或者“实践”来做一些 INSERT 查询。我的软件是在 Visual Basic .NET 上开发的,可以访问 MySQL Remote 数据库。我需要每天循环,并插入至少 50.000 条记录。对此进行编码的最优化方式是什么?
现在,我在每条记录上打开一个连接,然后发送 INSERT 查询。我知道这是最糟糕的方法,这就是我正在努力改进的方法。
我考虑将整个循环分成小组,每组查询 1000 条记录。他们不是太大,但他们很多。
我已经阅读了一些关于 mysql_ping 的内容,以保持连接处于活动状态并避免连接、关闭、连接等。所以这样我就可以在开始时只建立一个连接来完成循环。
我有点迷茫,你的建议是什么?
感谢你们。
编辑:这是我用来进行查询的代码:
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
我在 LOOP 的每个 INSERT 上调用这个函数。