用户发布表单后,我需要使用C#MySQL Connector / NET更新大约500行。我正在重用相同的连接,但我正在执行多个ExecuteNonQuery,这给了我一个性能问题。
解决此问题的最佳方法/最佳做法是什么?
请注意,出于安全原因,我更喜欢使用参数变量而不是纯文本。例如。 “INSERT INTO xxx(a,b,c)VALUES(@ a,@ b,@ c)”,但如果这是一个不可能的约束,请告诉我。
答案 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支持这种情况)。