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

可以在PHP中处理大量的comlpicated数据库数据,每天多次

发布时间:2020-12-13 17:05:39 所属栏目:PHP教程 来源:网络整理
导读:我很快就要开展一个给我带来问题的项目. 它将需要在一天中定期处理成千上万条记录,可能超过一百万条记录.处理将涉及若干(可能复杂的)公式和几个随机因素的生成,将一些新数据写入单独的表,并用一些结果更新原始记录.这需要在所有记录中发生,理想情况下,每三个
我很快就要开展一个给我带来问题的项目.

它将需要在一天中定期处理成千上万条记录,可能超过一百万条记录.处理将涉及若干(可能复杂的)公式和几个随机因素的生成,将一些新数据写入单独的表,并用一些结果更新原始记录.这需要在所有记录中发生,理想情况下,每三个小时一次.该站点的每个新用户将添加50到500条需要以这种方式处理的记录,因此该数字将不稳定.

代码尚未编写,但由于我仍处于设计过程中,主要是因为这个问题.我知道我将需要使用cron作业,但我担心处理这种大小的记录可能会导致网站冻结,执行缓慢,或者每隔三小时就会让我的托管公司失去兴趣.

我想知道是否有人对类似科目有任何经验或建议?我以前从来没有这么大的工作,而且据我所知,这对服务器来说是微不足道的,并没有造成太多问题.只要在下一个三小时的时间段之前处理所有记录,我不在乎它们是否同时处理(尽管理想情况下,属于特定用户的所有记录都应该在同一批处理中处理),所以我一直在想我是否应该每5分钟,15分钟,每小时,无论什么工作分批处理,以及如何最好地处理这个问题(并以一种对所有用户公平的方式使其可扩展)?

解决方法

下面我将描述我将如何处理这个问题(但会花费你的钱,可能不是理想的解决方案):

>你应该使用VPS(一些cheap VPS的快速列表).但是我想你应该多做一些research找到最适合你需求的VPS,如果你想在没有惹恼你的托管公司的情况下完成你的任务(我相信你会).
>您不应该使用cronjobs,而是使用类似于例如beanstalkd的消息队列来排队消息(任务)并执行脱机处理.使用消息队列时,如果需要,还可以限制处理.

没有必要,但我会以这种方式解决它.

>如果性能确实是一个关键问题,我会有两个VPS(至少)实例.一个VPS实例用于处理来自访问您站点的用户的http请求,以及一个VPS实例来执行您希望的脱机处理.这样,您的用户/访问者就不会注意到您正在进行的任何繁重的脱机处理.
>由于阻塞性质,我也可能不会使用PHP进行离线处理.我会使用像node.js这样的东西进行这种处理,因为在node.js中没有任何阻塞,这会更快.
>我也可能不会将数据存储在关系数据库中,而是使用闪电般快速的redis作为数据存储区. node_redis是node.js的超快客户端

(编辑:李大同)

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

    推荐文章
      热点阅读