我有一个 mysql 数据库,我正在尝试将其迁移到另一个数据库中。他们有不同的模式,我为旧数据库的每个表编写了一个 php 脚本,以便将其数据填充到新数据库中。该脚本工作得很好,但问题是它没有移动所有数据。例如,如果我有一个表,它的所有信息都被选中,然后插入到新表中,但只完成了一半。我这样做的方式是打开一个数据库,选择 * 并将其放入关联数组中。然后我关闭数据库连接并连接到另一个通过数组的每个元素并将它们插入新的。数组的大小有限制吗?这里有什么问题?

最佳答案

您应该从第一个数据库中分块读取行(例如 1000 行),将这些行写入第二个数据库,清理数组(使用 unset() 或空数组)并重复该过程,直到读取所有行.
这克服了内存限制。

另一个问题可能是脚本运行时间过长(如果表太大),因此请尝试使用函数 set_time_limit() 。此函数重置脚本的超时时间,之后脚本应终止。我建议在处理每个块后调用它。

关于php - 通过php进行数据库迁移,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3221721/

10-11 03:19
查看更多