第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

拉拉維爾分頁(yè)“允許的記憶耗盡”

拉拉維爾分頁(yè)“允許的記憶耗盡”

PHP
慕標(biāo)琳琳 2022-09-25 20:54:44
當(dāng)我試圖用幾個(gè)連接和groupBy內(nèi)部對(duì)大查詢的結(jié)果進(jìn)行分頁(yè)時(shí),我遇到了問(wèn)題。我的部分代碼在這里:$lots = Lot::select('lots.id', 'lots.name', 'lots.slug', 'lots.description', 'lots.customer as lot_customer',            'lots.created_at', 'lots.measure', 'lots.delivery_place', 'lots.amount as real_amount', 'lots.amount')            ->leftJoin('tenders', 'tenders.id', '=', 'lots.tender_id')            ->leftJoin('customers', 'lots.customer_id', '=', 'customers.id')            ->groupBy('lots.id')            ->paginate(25);我有420650 - 數(shù)據(jù)庫(kù)中的總記錄,但對(duì)于分頁(yè),我想每頁(yè)只顯示25條記錄。我收到消息:允許的內(nèi)存大小已用盡(嘗試分配16777224字節(jié))...如果您有辦法解決此類問(wèn)題,請(qǐng)分享。謝謝!
查看完整描述

3 回答

?
長(zhǎng)風(fēng)秋雁

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊

此問(wèn)題現(xiàn)在似乎已修復(fù)。我在拉拉維爾7.0中遇到了這個(gè)問(wèn)題。更新到7.20,我不再耗盡內(nèi)存,甚至下降到32M的內(nèi)存限制。


查看完整回答
反對(duì) 回復(fù) 2022-09-25
?
鳳凰求蠱

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超4個(gè)贊

您可以增加內(nèi)存限制 php.ini

ini_set('memory_limit','160M'); or memory_limit = 2024M


查看完整回答
反對(duì) 回復(fù) 2022-09-25
?
茅侃侃

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超22個(gè)贊

我發(fā)現(xiàn)問(wèn)題在于 laravel 獲取分頁(yè)結(jié)果的記錄總數(shù):


public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null)

{

 ...

 $total = $this->toBase()->getCountForPagination()

 ...

}


protected function runPaginationCountQuery($columns = ['*'])

{

 return $this->cloneWithout($without)->cloneWithoutBindings($this->unions ? ['order'] : ['select', 'order'])->setAggregate('count', $this->withoutSelectAliases($columns))->get()->all();

}

通常,最后一種方法運(yùn)行分頁(yè)CountRy為了獲取記錄計(jì)數(shù)而創(chuàng)建對(duì)數(shù)據(jù)庫(kù)的原始查詢,如下所示:


選擇 count(*) 作為從左聯(lián)接開(kāi)始的聚合。= .左聯(lián)接上 ...lotstenderstendersidlotstender_idcustomerslotscustomer_id


但是使用groupBy在查詢中而不是一行,總計(jì)數(shù)我得到了420650行,每行一行!它是足夠大的數(shù)組,創(chuàng)建只是為了獲取行數(shù),在我的情況下,這是完成內(nèi)存的原因。


我知道groupBy對(duì)于大數(shù)據(jù)不是一個(gè)好的決定,我對(duì)我的代碼進(jìn)行了重構(gòu),以從我的查詢中撤消groupBy。但事實(shí)上,在我看來(lái),這并不是你可能預(yù)料到的正常的拉拉維爾行為。


查看完整回答
反對(duì) 回復(fù) 2022-09-25
  • 3 回答
  • 0 關(guān)注
  • 119 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)