昨天,php php討論群里提到,他他的個項目由于由于由于由于由于由于由于由于由于由于查詢查詢查詢返回的的結(jié)果結(jié)果太(10萬),從而從而從而萬結(jié)果結(jié)果的的的的的的返回提到提到提到提到提到提到提到提到所以,他,在在下面代碼遍歷的的的的的結(jié)果,數(shù)據(jù)結(jié)果,數(shù)據(jù)數(shù)據(jù)是否已經(jīng)在內(nèi)存? -
while($ row = mysql_fetch_assoc($ result)){
// 網(wǎng)站建設(shè)營銷公司 ...
}
當然,這這有優(yōu)化方法方法。不過,就就來講,我我,mysql是是c/s(client/server,客戶/服務(wù)器,客企業(yè)網(wǎng)站定制戶/服務(wù)器)模型,在在結(jié)果集之前tcp/ip)讀到客戶端的的,也也一種可能可能,就就是數(shù)據(jù)數(shù)據(jù)還在在在端端端的沖【企業(yè)網(wǎng)站制作】區(qū)里,并沒有傳給客戶。
php php和mysql的的之前,php php手冊手冊有個功能功能的函數(shù):
mysql_query()
mysql_unbuffered_query()
兩個字面和說明說明證實了想法想法想法想法的的的的的的函數(shù)函數(shù)執(zhí)行執(zhí)行執(zhí)行執(zhí)行時時時時時時時時時時時時時時會會會會會會會會會會會會會會會會把把把把把把所有所有的的的結(jié)果結(jié)果集從集從集從集從集從集從集從集從集從端讀端讀端讀端讀端讀端讀端讀端讀端讀端讀端讀端讀端讀端讀端讀端讀端讀端讀端讀端讀端讀端讀端讀端讀端讀端讀端讀端讀端讀端讀端讀端讀端讀端讀的的的的的的的的的的的的”的意思。
那就是是,mysql_unbuffered_query()執(zhí)行執(zhí)行一條大量結(jié)果結(jié)果集的的的的的的的語句,在在,php的的的之前之前之前內(nèi)存內(nèi)存內(nèi)存是mysql_query()來來的的話的話,php的的占用便便會急劇,立即立即,立即
php php的代碼,可以可以這函數(shù)的上異同異同異同:
php_function(mysql_query)
{
php_mysql_do_query(enternal_function_param_passthru,mysql_store_result);
}
php_function(mysql_unbuffered_query)
{
php_mysql_do_query(enternal_function_param_passthru,mysql_use_result);品牌型網(wǎng)站制作價格
}
php_mysql_do_query(),只只只只只只只只差差了了了第第第第個個個的再看php_mysql_do_query()的實現(xiàn):
if(use_store == mysql_use_result){
mysql_result = mysql_use_result(&mysql-> conn);
} 別的 {
mysql_result = mysql_store_result(&mysql-> conn);
}
mySQL_USE_RESULT()和mySQL_STORE_RESULT()是mysql的c api函數(shù),這這兩個capi函數(shù)函數(shù)函數(shù)函數(shù)區(qū)別區(qū)別就就集從集從mysql serve端mysql server端
回到php,使用mysql_unbuffered_query(),可以可以內(nèi)存占用。 php緩存進行進行進行進行進行進行進行進行進行”(如放到中),則則組執(zhí)行執(zhí)行執(zhí)行過程雖然雖然操作了十萬十萬條條或者或者百萬數(shù)據(jù)數(shù)據(jù)的多多的。
標簽:溫州網(wǎng)站制作建設(shè)建設(shè)
營銷網(wǎng)站建設(shè) 專業(yè)的網(wǎng)站設(shè)計
請立即點擊咨詢我們或撥打咨詢熱線: 13968746378,我們會詳細為你一一解答你心中的疑難。項目經(jīng)理在線