使用mysql处理大数据


Handling large data with mysql

我有一大组数据需要从mysql中提取。预计将达到100000以上。我已经使用索引和其他东西对处理数据进行了优化。我现在面临的问题是内存溢出。每当我试图提取高于100000的数据时,它就会显示内存大小错误。我把内存限制为512M,但可能会有大数据,所以我不能每次都增加内存。有更好的方法来处理这个问题吗。我正在使用cakepp,我需要一次为我的系统提供所有数据。

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

这基本上是AJAX分页或"无休止加载",只是不更改页面,而是将下一页附加到DOM树中的上一页,直到到达最后一页。当所有记录都被加载并且DOM树中存在数百万个元素时,享受一个可能非常响应缓慢的网站会很有趣。)

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