处理1000万个数据集 - php和sql

时间:2017-09-29 15:58:29

标签: php performance parallel-processing cron bigdata

我们正在使用PHP 7并且在一个只有128 MB RAM的Web服务器上运行MySQL数据库。 我们处理大量数据集时遇到问题。 简单描述:我们有40.000种产品,我们希望收集这些产品的数据,以便了解它们是否需要更新。从具有10百万个数据集的另一个表中收集特定数据的查询需要1.2秒,因为我们在其中有一些SUM函数。我们需要单独对每个产品进行查询,因为与SUM相关的时间范围不同。由于大量的查询,应该遍历所有产品的函数返回超时(5分钟后) - 这就是为什么我们决定实现一个cronjob,它调用函数并且函数继续使用它最后一次结束的产品。我们每隔5分钟拨打一次cronjob。 但是,使用我们的40.000产品,我们需要约30个小时才能处理所有产品。按照cronjob,我们的功能处理大约100种产品...... 如何处理如此大量的数据 - 是否有办法将其与例如数据并行化pthreads还是有人有另一个想法?服务器更新能否成为解决方案?

非常感谢! 纳丁

1 个答案:

答案 0 :(得分:0)

并行处理也需要资源,因此在128 MB上它无济于事。

监控您的系统以查看瓶颈所在。很可能是记忆,因为它太低了。一旦找到瓶颈资源,就必须增加它。没有多少调整和修补可以解决服务器过载的问题。

如果您可以看到它不是服务器资源问题(!),它可能处于查询级别(对于许多关节,需要一些索引,......)。而你的5分钟。超时可能会增加。

但从服务器开始。

相关问题