2016-11-21 57 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條記錄 –