php - 500 从查询中获取大量记录时发生内部错误
问题描述
我有一个查询,其中包括一些连接条件和子查询。这个查询返回了大约 1M 的结果。根据这个结果,我需要进行一些计算并实现逻辑以最终输出结果。
我的问题是当我运行这个查询时,它给了我 500 内部错误。我尝试将 php.ini 文件的内存增加到 2048M。但我仍然遇到同样的错误。
在 SO 中,我看到有人讨论 laravel 的块,但我不确定如何将它实现到给定的查询。
或者还有其他更好的解决方案来优化我的查询。
$query = User::query();
$query->select($cols)
->join().....
$query->whereRaw("customer.cid IN (" . DB::raw($selectedSubQuery->toSql()) . ")")
->addBinding($selectedSubQuery->getBindings());
$records = $query->get()->toArray();
解决方案
我怀疑您的查询返回的行太多。在这种情况下,设计一种方法将查询拆分为一系列查询,这些查询作为一个组返回与原始查询匹配的所有行。
推荐阅读
- file - 如何为列表中的每个项目执行循环?VB.NET
- c - 如何在C语言中反转字符串中单词中的每个字符?
- php - 在 jQuery 变量 WooCommerce 中获取产品变量数组
- javascript - JavaScript setTimeout 执行顺序
- javascript - 尝试对 Web 表单方法进行 Ajax 调用并获得内部服务器错误。我已经尝试了几乎所有类似问题的解决方案
- arrays - 如何在 Rust 函数中返回一个数组
- python - 如何在 google colab 中处理来自 google drive 的视频
- .net - 如何在集群模式下设置 Quartz.NET,其中一个调度程序处于活动状态(其他调度程序处于待机状态)并自动进行故障转移?
- mongodb - MongoDB 选择一个对象并按不同字段排序
- pyspark - PySpark Schema 应以 DDL 格式指定为字符串文字或 schema_of_json 函数的输出,而不是 schemaofjson(`col1`);