2

在建立到 MySQL 服务器的远程连接后(使用 MySQL 命令行前端),我开始执行一个很长的存储过程(我估计它可能需要超过 7 个小时)但在它中间我收到了错误:

错误 2013 (HY000): 查询期间丢失与 MySQL 服务器的连接

所以我猜我的查询超时了。此过程只是将一些值存储在以前的空表中。

在收到此错误并重新建立与服务器的连接后,我可以验证该过程是否以某种方式继续执行。一段时间后,我还验证了以前的空表现在有一些行。

我的问题是,即使连接丢失,我可以相信程序的执行是正确的吗?

4

1 回答 1

0

首先,7小时似乎太长了。如果不完整的结果困扰您,您可以在完成 N 个查询时添加一些保存点,并将 N 个查询合并为一个事务。然后,每次您的程序异常停止时,您都可以加载上次保存的点。

我还建议您可以尝试将源数据选择到本地计算机中,并编写一些脚本来获取结果,然后将其上传到目标表。这将减少数据库服务器的开销。

于 2012-04-22T02:04:57.533 回答