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

我正在尝试使用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惩罚,即一次性将所有数据提供给视图,它可以顺序处理行.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...