我需要从mysql中提取大量数据。可达100,000+。我已经为使用索引和其他方法处理数据做了优化。我现在面临的问题是内存溢出。每当我试图提取大于10万的数据时,它就会显示内存大小错误。我已经把内存限制在了5.12亿,但是可能会有大量的数据,所以我不能每次都增加回忆录。有没有更好的方法来处理这件事。我正在使用cakephp,我需要为我的系统同时提供所有数据。
发布于 2014-10-28 12:48:55
你无法逃避记忆有限的事实。句号。这个要求很傻,但没问题。您必须处理适合可用内存的数据块,并将这些数据块发送到客户端,或者将它们附加到您正在编写的文件中。
这基本上是AJAX分页或“无限加载”,只是您不更改页面,而是将下一页附加到DOM树中的前一页,直到您到达最后一页。在加载所有记录并在DOM树中存在数百万个元素时,请享受一个可能非常慢的响应站点。;)
另一种方法可以是在后台作业(shell、cron任务)中创建视图,然后像静态页面一样将预生成的文件发送到客户端。shell还必须对数据进行分页,并将其附加到内存限制中。
https://stackoverflow.com/questions/26603331
复制相似问题