使用C#MySQL Connector进行批量更新的最快,最有效的方法是什么?

时间:2013-07-17 03:09:49

标签: c# asp.net mysql mysql-connector

用户发布表单后,我需要使用C#MySQL Connector / NET更新大约500行。我正在重用相同的连接,但我正在执行多个ExecuteNonQuery,这给了我一个性能问题。

解决此问题的最佳方法/最佳做法是什么?

  • 我应该创建一个非常长的SQL字符串吗?如果是这样,我如何处理每行的特定参数值和变量?
  • 是否有流媒体界面?
  • 是否有最佳的批量接口?

请注意,出于安全原因,我更喜欢使用参数变量而不是纯文本。例如。 “INSERT INTO xxx(a,b,c)VALUES(@ a,@ b,@ c)”,但如果这是一个不可能的约束,请告诉我。

2 个答案:

答案 0 :(得分:0)

如果只有500行左右,我倾向于只构建长SQL字符串并执行一次

Insert into MyTable (a, b, c) values (1,2,3), (2, 3, 4)

您正在构建“(1,2,3),(2,3,4)”部分。

答案 1 :(得分:0)

您可以将更新分批批量处理,例如,50。使用编号参数名称为{50}更新构建SQL查询:INSERT INTO xxx (a, b, c) VALUES (@a_1, @b_1, @c_1)。然后动态创建具有相同名称的参数。

您说您需要更新,但您的代码会显示插入内容。如果您确实在进行插入操作,则应该插入多行并使用一个insert语句(我认为MySQL支持这种情况)。