【发布时间】:2014-02-27 19:27:41
【问题描述】:
我发现mysql更新记录很慢。
我有一个逻辑,如果记录存在,它将更新,否则它将插入。 但是源数据库的总记录有 14k 行,并且它只在几秒内成功插入每一行,因此,它非常慢,我怎样才能在 1 分钟内插入 14k 行? 顺便说一句,我正在使用 c#
foreach (row in rows)
checkrecords(row); // if exist update, else create.
问候, MH
【问题讨论】:
-
innodb 缓冲池设置为我的 cpu 内存的 70%,它仍然没有效果。
-
我不确定如何在 C# 中执行,但在 php 中我通常会结合插入语句并一次性执行。好吧,检查行是否存在并决定更新或插入行确实需要时间。对表使用 innodb,使用 profiling 来查看代码的哪一部分花费的时间最多。
-
也在这里写你的代码,我们无法读懂你的想法来找出你想要做什么。
-
我假设您是在
checkrecords()方法中提交您的事务?我不是 innodb 方面的专家,但只有在你构建了所有查询之后才尝试提交,就像在这个例子中 stackoverflow.com/questions/4818929/… 一样。这篇文章也可能有用(关闭自动提交)dev.mysql.com/doc/refman/5.5/en/…
标签: c# mysql performance