MySQL存储过程的性能

时间:2017-03-07 10:37:54

标签: mysql stored-procedures

我的数据库中有一些表包含我想要在测试服务器上使用它之前进行模糊处理的数据。所以我写了一个存储过程,我可以调用它来做。

主要的是它:

  • 创建一个游标,从表A
  • 中选择所有行(每列4列)
  • 循环使用这些结果(在我的情况下,大约有45000)
  • 对于每个结果,更新表A,并用模糊处理的值替换特定列的值。它还更新具有相同列的表B(400000个条目),并用模糊处理的表替换原始值的所有实例。

我遇到的问题是循环非常快地减慢 相当 。它实际上从处理大约1500个结果/秒到每个结果需要几秒钟才能执行。

表格A& B使用索引更新。两张桌子和数据库具有相同的字符集。手动运行更新查询需要几毫秒。

我希望我对问题的描述足以让某人给我一些指示。我的资源耗尽了吗?我将光标在循环内的4个参数中FETCH,我是否需要'释放'那些?我是否需要在循环中“释放”我所做的更新语句?

编辑:我只是使用mysqlclient库在c ++中重写了存储过程,它运行得很好

0 个答案:

没有答案