检查数组中哪些元素不在表中的正确方法

时间:2013-08-29 16:45:43

标签: php mysql

我有一个函数可以下载PHP中的链接列表(比如大约10万,但不是一次)。想要仅从尚未下载的链接下载这些链接中的数据,因此我需要检查它们中的哪些不在MySQL数据库中。数据库现在包含大约40 000条记录。这样做的正确方法是什么?我无法将所有这些链接保存在数组中并与MySQL结果进行比较,因为它需要太多内存。我正在从多线程(通过分叉)链接下载信息。如果父级占用10MB内存,30个分支占用300MB等等。我试图分别查询每个链接的数据库,但是很短的时间后我就开始与MySQL服务器断开连接,当我再次尝试连接时(我ping连接到检查它是否还活着)并尝试选择数据库,它关闭连接错误“MySQL服务器已经消失”。我该怎么做?

2 个答案:

答案 0 :(得分:0)

您可以在文本文件中“保存”链接仅用于此检查,如果链接是否已下载,使用它来比较链接要快得多。

看看这个mytxt

答案 1 :(得分:0)

并不完全是您问题的答案,但考虑保存所有找到的结果但将其存储在关联数组中可能值得您考虑以链接为关键字。这样重复只会重写以前的版本。

这种方法的优点是你不会在任何时候“浪费”检查,但缺点可能是,特别是如果你处理许多列,你需要花费太多时间下载冗余信息。