簡體   English   中英

php內存已耗盡,無法解決

[英]Php Memory Exhausted.Unable to Resolve

我正在使用PHP從Hive讀取一個非常大的表(8,00,000行,130列)。 我收到一些分配的內存耗盡錯誤。我已經看到通過在php.ini文件中設置memory_limit = 512M(say)在Stackoverflow中回答了同樣的問題。

我做了同樣的事情並重啟了服務,但是仍然彈出同樣的錯誤,任何建議都會有很大幫助。

可能有幾個問題:

  • 您的MySQL使用過多的內存/資源
  • PHP中的結果列表太大。 例如,如果您有一個大對象集合,則結果列表中可以包含8.000.000個對象

最好對數據進行分頁。 下面我將對此進行解釋。

分頁

查詢中的分頁限制了結果(“ LIMIT FROM,SIZE”)。 查詢如下所示:

SELECT foo, bar FROM table LIMIT 0, 100  

因此,您可以獲得較小的查詢結果,減少了內存和資源的使用。

在此處閱讀全文: http : //mysql.rjweb.org/doc.php/pagination

性能

為避免性能問題,請確定要歸檔的數據。 讓我舉一個例子:

  • 使用臨時表,在其中保存(例如)1個月的數據
  • 所有早於1個月的數據都應移至“存檔”表
  • 從臨時表讀取,速度很快

未來

您可能期望越來越多的數據。 因此,進一步看是一件好事。 使用ElasticsearchSolr ,您可以在毫秒內查詢,過濾,分析和匯總數百萬個文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM