0

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

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

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

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

4

2 回答 2

0

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

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

在哪里构建“(1, 2, 3),(2 ,3, 4)”部分。

于 2013-07-17T03:40:16.417 回答
0

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

你说你需要更新,但你的代码显示插入。如果你真的在做插入,你可能应该用一个插入语句插入多行(我认为 MySQL 支持)。

于 2013-07-18T15:13:41.787 回答