mysql - 使用 Laravel 处理大型数据库的最佳方式

标签 mysql sql database laravel-4 database-performance

数据库

我正在使用一个包含相当大表的数据库,这给我带来了问题。特别是有超过 120k 行。

我在用它做什么

我在 MakeAverage.php 文件中遍历此表,将它们合并到我数据库中新表中的大约 1k 行中。

什么不起作用

即使我尝试 DB::disableQueryLog()take(1000) 限制,Laravel 也不允许我一次处理所有内容.即使启用了我的错误报告(有点像 this ),它每次都会返回一个空白页面。另外,我没有为此的 Laravel 日志文件。我不得不查看我的 php_error.log(我正在使用 MAMP)以意识到它实际上是一个 memory_limit 问题。

我做了什么

我在执行代码之前使用 ini_set('memory_limit', '512M') 增加了内存量。 (这是不好的做法,我应该在 php.ini 中这样做。)

发生了什么?

成功了!然而,Laravel 抛出了一个错误,因为由于数据量很大,页面在 30 秒后没有完成加载。

最佳答案

我会做什么

在这个问题上花了一些时间并查看了其他有类似问题的人(参见:Laravel forum194535951877551012443321),我认为也许 PHP 不是解决方案。

因为,我只是根据 Table A 的平均值创建一个 Table B,我相信 SQL 将最适合我的需求,因为它是对于这种类型的操作(参见:6449072),我明显比 PHP 快,而且我可以使用诸如 SUMAVERAGECOUNTGROUP_BY(Reference)。

关于mysql - 使用 Laravel 处理大型数据库的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19715126/

相关文章:

mysql - 将一个数学函数应用于另一个数学函数

PHP explode 函数只允许我在搜索 in_array 时检测数组的第一项。为什么?

mysql - 同一聊天中两条消息的响应时间

mysql - 使用 mysql 将一个值从一个表插入到另一个表

mysql - 无法在MySQL数据库中添加外键

MySQL电影预订系统设计第2部分

sql - 从 Sql Server 查询所有用户定义的类型?

用于验证两个数据库的 SQL 脚本

python - Django 1.6.5 中不存在该列

PHP根据同一表中另一列的值查询表列