2016-11-21 65 views
-1

背景连接: -PHP - 的mysqli - 选择超过50万条记录 - 失去与MySQL服务器

我有〜200万个记录的简单表格。 当我从命令行客户端运行我的查询时,我在没有任何问题的体面时间内获得了结果。 我正在使用doctrine2,但切换到普通的mysql查询来测试它是否与doctrine2的情况。

问题: -

当我运行PHP脚本,它抛出Mysql的失去连接错误一样普通SELECT查询。 注意:正常工作时,我限制( “限100”)结果,以较少数量的..说100,1000,10000

我想: -

Incresed下面的my.ini值在[MySQL的],在[mysqld],[客户]节

read_buffer_size, connect_timeout, net_read_timeout, max_allowed_pa​​cket的

另外max_execution_time和memory_limit足以处理数据。 0和1024M准确

FTR我也重新启动所有服务后进行配置更改。 在网上搜索没有运气。

任何帮助?

感谢, 基兰

+0

检查'max_execution_time'并将其设置为max_execution_time = 180 – RJParikh

+0

@RuchishParikh PHP max_execution_time已设置为0。内存限制也高于结果数据 –

+0

检查php.ini中的max_input_vars。供参考:我不是downvoter。 – RJParikh

回答

1

不管你有什么问题的原因 - 选择500K +的记录一次是规划执行不力。更好的方法是使用LIMIT和某种前端分页 - 如果您想要将结果显示给用户。

+0

或使用Doctrine的批处理方法来操作数据:http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/batch-processing.html – LBA

+0

这不是答案,应该是一个评论。 2.比在前端显示数据和像博客例子分页更复杂的用例。我的要求就是这样,我需要所有的数据进一步处理。 4.我的问题是极端情况,我确实很好奇为什么php mysql组合无法处理仅仅500000条记录 –