使用Laravel处理大型数据库的最佳方法

时间:2013-10-31 19:33:55

标签: 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秒后没有完成加载。

1 个答案:

答案 0 :(得分:4)

我将做什么

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

因为,我只是从Table B的平均值创建Table A,我相信SQL会最符合我的需求,因为它明显比PHP更快。操作(参见:6449072)我可以使用SUMAVERAGECOUNTGROUP_BYReference)等功能。