你看看你的程序里面有沒有用到遞歸,或者有沒有死循環(huán)。
紅古網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)自2013年起到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
另外解決此類問題的主要思想就是分而治之
我覺得是foreach的機制的問題
foreach($arr as $key=$value){}這里面的$value是每次循環(huán)是把數(shù)組中元素的值賦值給$value
而foreach($arr as $key=$value){}這里的$value是引用賦值。
兩者有什么區(qū)別呢?帶引用的$value可以$value='aaa';直接改變元素的值;還有一個重要的,就是最后一次循環(huán)之后$value的值還會保留;
你這里是foreach($obj as $value){}對象默認是引用傳值;所以循環(huán)過后要unset($obj);
php里還有一個函數(shù)clearstatcache(true)清楚文件狀態(tài)緩存,雖然受影響的函數(shù)沒有simplexml_load_file(),不過還是可以試試;
還有mysql系列的函數(shù)很多也不是很穩(wěn)定,有時候不知道會出什么問題;建議用PDO;
深感php里面的坑太多了,稍不注意就跳進去了。
使用mysql_unbuffered_query(), 可以避免內(nèi)存的立即占用, 如果返回的結(jié)果存放到array中也是完全沒有問題的, 也不會出現(xiàn)php查詢mysql數(shù)據(jù)量過大時導致內(nèi)存溢出問題.
這種情況一般會在單表數(shù)據(jù)表數(shù)據(jù)庫比較大的時候出現(xiàn),建議在使用的過程中限制單次讀取數(shù)據(jù)條數(shù),或者對數(shù)據(jù)表進行分表
這個報錯在php報錯司空見慣,就是memory_limti值超出了限制導致的報錯,簡單粗暴不負責任就是改php.ini設(shè)置,或者稍微好點就是init_set("memory_limit","2048M"),但是這兩種都是治標不治本,沒有從根本上解決這個報錯,如果數(shù)據(jù)20萬通過改memory_limit可以稍微控制,但是50萬,100萬咧這樣就是無限的擴大這個值導致服務(wù)器隨時出現(xiàn)問題。
網(wǎng)站標題:php數(shù)據(jù)庫報內(nèi)存溢出 php 內(nèi)存泄漏
文章URL:http://jinyejixie.com/article18/dohpidp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、網(wǎng)站維護、外貿(mào)網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、企業(yè)網(wǎng)站制作、用戶體驗
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)