Php 用mysql处理大数据

Php 用mysql处理大数据,php,mysql,cakephp,Php,Mysql,Cakephp,我需要从mysql中提取大量数据。预计将达到100000+。我使用索引和其他方法对数据处理进行了优化。我现在面临的问题是内存溢出。每当我尝试提取高于100000的数据时,就会显示内存大小错误。我已经将内存限制为512M,但可能会有大量数据,因此我无法每次都增加内存。有没有更好的处理方法。我使用的是cakephp,我的系统一次需要所有数据。内存有限这一事实是无法逃避的。时期这个要求虽然愚蠢但很好。您必须处理适合可用内存的数据块,并将数据块发送到客户端或将其附加到您正在编写的文件中 这基本上是AJA

我需要从mysql中提取大量数据。预计将达到100000+。我使用索引和其他方法对数据处理进行了优化。我现在面临的问题是内存溢出。每当我尝试提取高于100000的数据时,就会显示内存大小错误。我已经将内存限制为512M,但可能会有大量数据,因此我无法每次都增加内存。有没有更好的处理方法。我使用的是cakephp,我的系统一次需要所有数据。

内存有限这一事实是无法逃避的。时期这个要求虽然愚蠢但很好。您必须处理适合可用内存的数据块,并将数据块发送到客户端或将其附加到您正在编写的文件中

这基本上是AJAX分页或“无止境加载”,只是不更改页面,而是将下一页附加到DOM树中的上一页,直到到达最后一页。当所有记录都已加载且DOM树中存在数百万个元素时,享受一个响应速度可能非常慢的站点的乐趣。;)


另一种方法是在后台作业(shell、cron任务)中创建视图,然后像静态页面一样将预生成的文件发送给客户端。shell还必须对数据进行分页并附加数据,以解决内存限制。

同时需要数据库之外的所有数据的要求似乎有缺陷。也许你可以将一些计算推送到数据库,只检索一组较小的数据。请定义:“从mysql中提取”。可能的重复也可能有帮助:只有当你将整个数据库与某个远程客户端或冗余服务器同步时,才可能需要检索这么多记录,在这种情况下,您应该重新定义同步策略。