我有一个 SQL,它使用 PHP 将系统的所有用户带回 MySQL 数据库中,我需要获取这些用户并将它们移动到另一个系统(不用担心这些字段,我已经映射了它们)。问题是我在数据库中有超过 67000 个用户。有什么办法可以用 PHP 做到这一点并立即获得所有结果?因为我试过给我一个错误,而不是一个错误,但是 PHP 不能一次返回所有结果。
问问题
63 次
3 回答
1
您可能已经达到 PHP 的默认内存限制。你有(至少)2个选项:
- 一次获取它们(就像您现在所做的那样),并增加 PHP 可能在该脚本中使用的内存。您可以在名称“memory_limit”下找到它。 http://nl3.php.net/manual/en/ini.core.php 请注意,您只对当前脚本执行此操作,而不是通过修改 php.ini 在系统范围内执行此操作。
- 以较小的批次获取您的记录,例如每次 1000 条。这样你就不会达到你的内存限制。
在这两种情况下,您都可能希望增加脚本的运行时间。看看最大执行时间。
http://nl3.php.net/manual/en/info.configuration.php#ini.max-execution-time
于 2012-07-25T12:17:56.393 回答
0
把它放在你的 PHP 脚本之上: ini_set('memory_limit', '512M');
你可以给 php 脚本少于 512MB ofc
于 2012-07-25T12:21:41.580 回答
0
您可以在 SQL 中使用限制
限制 0, 1000
限制 10001, 2000
ETC
于 2012-07-25T12:22:02.453 回答