我正在 mysql 中进行大型连接,然后对结果数据进行操作并将其写入另一个表。现在,我使用的是默认的 mysql_store_result,但是查询后的 $sth->execute() 需要大约 20 分钟才能运行。我想切换到 mysql_use_result 因为我一次只处理一行。
但是,这部分文档让我很困扰:
此属性强制驱动程序使用 mysql_use_result 而不是 mysql_store_result。前者速度更快,内存消耗更少,但往往会阻塞其他进程。(这就是为什么 mysql_store_result 是默认值的原因。)
我一次只处理一行,然后将结果存储在一个数组中。每 500 个条目,我将插入一个单独的表。在 mysql_use_result 循环中可以这样做吗?如果我为 INSERT 定义一个新的 DB 处理程序,可以这样做吗?