刚刚完成了许多查询重写为批量查询 - 不再需要在foreach循环中调用数据库!
其中一个新的批处理查询,并将ignore插入数据透视表,每次需要1-4秒。它相当大(每次调用约100行),表也是> 200万行。
这是我计划中的当前瓶颈。我应该考虑锁定桌子之类的东西(以前从未这样做过,但我听说它很危险)或者我还应该先看看其他选项。
由于它是一个数据透视表,因此有一个唯一的键由我正在更新的行组成。
答案 0 :(得分:0)
您使用的是索引吗?索引正确的列可以极大地提高速度。如果您正在进行大量的更新和插入,有时在完成之前禁用索引是有意义的,因为重新索引需要时间。我不明白如何锁定表会有所帮助。此表是否由其他用户或应用程序用户使用?这将是锁定提高速度的主要原因。