加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

CakePHP建议迭代一个巨大的表并生成一个站点地图?

发布时间:2020-12-13 16:01:52 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试使用Cake PHP创建一个XML站点地图,该表目前有超过50,000条记录,每条记录等同于站点地图中的URI.现在我面临的问题是CakePHP在生成它时会让我失去内存,原因有两个: find(‘all’)正在构建整个50,000 URI的巨大关联数组. 因为我不想从控制器本身输出
我正在尝试使用Cake PHP创建一个XML站点地图,该表目前有超过50,000条记录,每条记录等同于站点地图中的URI.现在我面临的问题是CakePHP在生成它时会让我失去内存,原因有两个:

> find(‘all’)正在构建整个50,000 URI的巨大关联数组.
>因为我不想从控制器本身输出HTML,所以我将包含URI,优先级,更改频率等的关联数组转移到带有$this-> set()调用的视图中 – 这也是是巨大的,包含50,000个指数.

是否有可能在遵循MVC和CakePHP指南的同时做到这一点?

你确定你必须耗尽50.000条记录的内存吗?即使一行的大小为1K(相当大),你还需要处理大约50 MB的数据?我的P1有足够的RAM来处理它.将php.ini中的memory_limit设置为高于默认值. (考虑调整max_execution_time.)

另一方面,如果您认为数据集太大并且将其处理为过于资源密集,则不应动态地提供该页面,这是完美的DDoS诱饵. (至少我会大量缓存它.)您可以安排一个cron作业,每隔X小时通过一个服务器端脚本重新生成页面,而不受MVC惩罚,即一次性将所有数据提供给视图,它可以顺序处理行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读