PHP-将迭代算法应用于数据库中的一组行

对于某些人来说,这个问题似乎太基本了,但是请忍受,因为我处理过不错的数据库编程已经有一段时间了.

我有一个算法,需要在PHP / MysqL中编程才能在网站上工作.它对对象数组进行迭代计算(根据对象的属性对对象进行排名).在每次迭代中,算法都会遍历所有集合两次,从整个集合的不同位置访问各种数据.该算法需要数百次迭代才能完成.该阵列来自数据库.

我看到的直接解决方案是获取数据库查询的结果,并为查询的每一行创建一个对象,将对象放入数组,然后将该数组传递给我的算法.

但是,当我不得不处理几千个项目的数组时,我担心这种解决方案的有效性,因为我所做的本质上是将查询结果镜像到内存中.

另一方面,在算法的每次迭代中使数据库查询几次也似乎是错误的.

所以,我的问题是-对于这样的问题,正确的架构解决方案是什么?将查询结果镜像到内存是否可以?如果不是,那么在这种算法中处理查询结果的最佳方法是什么?

谢谢!

更新:我能想到的最接近的问题是搜索引擎对搜索结果的排名-我需要做类似的事情.每个结果都表示为数据库的一行,并且在计算排名时会考虑该集合的所有结果.

解决方法:

记忆似乎是最好的方式-如果您可以扩展内存以满足需求.否则,您将不得不修改算法,以使用分而治之的方法-做类似合并排序的操作.

相关文章

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