php - 使用 PHP 和 MySQL 生成最大的报告

标签 php mysql memory

下午好。

我认为你的问题已经很老了,但仍然没有得到明确的答案。在一个拥有数百万(甚至数十亿)数据的软件中,您需要制作一份报告,但如果不查找所有数据并在 PHP 中使用它们,就不可能做到这一点。

问题:

1 - 由于数据大小以 GB 为单位,因此这些记录自然需要花费大量时间才能到达 PHP。 2 - 将所有数据放入PHP数组中进行处理会导致内存不足。

你们有人经历过这样的困境吗?因为在具有数千个数据的表中已经遇到了缓慢的情况,而且问题不在于查询,因为它对我(我承认不是数据库的行家)和大多数专家来说是 atimizada ,问题确实出在 PHP 中。 ITERATE 听说过,但也许您知道一个带有更长示例的解决方案。

我相信这个问题可以为许多已经经历过或仍在经历这个问题的用户提供服务。

谢谢你。

最佳答案

通常,当您有这么多数据时,您每次应该只将其中的一部分加载到内存中。
对每个 block 执行操作并计算最终报告。

如果您的操作足够简单,您可以让 MySQL 为您完成,前提是您有足够的 RAM(但购买起来很便宜)。

另请注意,如果您的数据多于内存量,那么使用 PHP 或任何其他语言都没有关系。您使用的算法是主要关注的问题。

关于php - 使用 PHP 和 MySQL 生成最大的报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26701875/

相关文章:

Mysql - 使用sql语句的TABLE字段布局

PHP表单使用多维数组提交到数据库

php - 使用 Google Maps API 的大 Foreach 循环

mysql - 如何在 Laravel 应用程序中更快地处理大型数据库?

javascript - 对象引用会占用额外的内存吗?

c - 链接文件而不是链接列表

c++ - C/C++ 中的地址偏移量是否在编译时解析?

php - 不能在 PHP 类中使用 "const"和 "define"

php - 如何在 CodeIgniter 中包含/使用 Composer Bootstrap?

php - 登录 mysql_num_rows 错误