使用mysql_unbuffered_query(), 可以避免內(nèi)存的立即占用, 如果返回的結(jié)果存放到array中也是完全沒有問題的, 也不會(huì)出現(xiàn)php查詢mysql數(shù)據(jù)量過大時(shí)導(dǎo)致內(nèi)存溢出問題.
創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的繁峙網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
這種情況一般會(huì)在單表數(shù)據(jù)表數(shù)據(jù)庫比較大的時(shí)候出現(xiàn),建議在使用的過程中限制單次讀取數(shù)據(jù)條數(shù),或者對(duì)數(shù)據(jù)表進(jìn)行分表
1.修改配置文件,擴(kuò)大查詢內(nèi)存方面的,例如tmp_table_size,還有別的根據(jù)實(shí)際情況放大點(diǎn)
2.優(yōu)化查詢語句,盡量避免查詢整張表的數(shù)據(jù)
使用 unbuffered cursor 可以避免內(nèi)存問題。
cursor 默認(rèn)使用 buffered 模式。這種模式會(huì)把所有結(jié)果集返回并載入內(nèi)存。如果結(jié)果集很大的話,內(nèi)存會(huì)爆。
unbuffered cursor 是每次只將下一行結(jié)果返回,內(nèi)存占用很小。不過這種模式缺點(diǎn)很多,所以沒有作為默認(rèn)的模式。