真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

php處理大量數(shù)據(jù) php yield 處理大數(shù)據(jù)

在PHP中怎么解決大量數(shù)據(jù)處理的問題

mysql_query函數(shù)查詢的方式是查詢出全部結(jié)果后緩存到內(nèi)存中,這樣就會出現(xiàn)超內(nèi)存的現(xiàn)象,使用另外一個函數(shù)mysql_unbuffered_query可以解決這個問題,mysql_unbuffered_query不會緩存結(jié)果集,而是查詢出來數(shù)據(jù)后立馬對結(jié)果集進(jìn)行操作,也就是便查詢邊返回,這樣就不會出現(xiàn)超出內(nèi)存的現(xiàn)象,但是使用mysql_unbuffered_query的是時候不能使用 mysql_num_rows() 和 mysql_data_seek()。并且向 MySQL 發(fā)送一條新的 SQL 查詢之前,必須提取掉所有未緩存的 SQL 查詢所產(chǎn)生的結(jié)果行。例如:

創(chuàng)新互聯(lián)是一家專注網(wǎng)站建設(shè)、網(wǎng)絡(luò)營銷策劃、小程序定制開發(fā)、電子商務(wù)建設(shè)、網(wǎng)絡(luò)推廣、移動互聯(lián)開發(fā)、研究、服務(wù)為一體的技術(shù)型公司。公司成立十多年以來,已經(jīng)為上千成都柴油發(fā)電機(jī)各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務(wù)?,F(xiàn)在,服務(wù)的上千客戶與我們一路同行,見證我們的成長;未來,我們一起分享成功的喜悅。

使用緩存結(jié)果集的代碼:

function selecttest()

{

try {

$pdo = new PDO("mysql:host=localhost;dbname=test", 'root', '123456');

// 不使用緩存結(jié)果集方式

// $pdo-setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);

$sth = $pdo-prepare('select * from test');

$sth-execute();

echo '最初占用內(nèi)存大?。? . memory_get_usage() . "\n";

$i = 0;

while ($result = $sth-fetch(PDO::FETCH_ASSOC)) {

$i += 1;

if ($i 10) {

break;

}

sleep(1);

print_r($result);

echo '占用內(nèi)存大?。? . memory_get_usage() . "\n";

}

} catch (Exception $e) {

echo $e-getMessage();

}

}

執(zhí)行時將會報超出內(nèi)存的錯誤:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 204800000 bytes) in E:\ProgramDevelopment\RuntimeEnvironment\xampp\htdocs\test\test.php on line 56

Call Stack:

0.0005 135392 1. {main}() E:\ProgramDevelopment\RuntimeEnvironment\xampp\htdocs\test\test.php:0

0.0005 135568 2. test-selecttest() E:\ProgramDevelopment\RuntimeEnvironment\xampp\htdocs\test\test.php:85

0.0050 142528 3. PDOStatement-execute() E:\ProgramDevelopment\RuntimeEnvironment\xampp\htdocs\test\test.php:56

將上面代碼中的$pdo-setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);一行的注釋去掉后將不在緩存結(jié)果集,這時運(yùn)行該函數(shù)的結(jié)果如下:

最初占用內(nèi)存大小:144808

Array

(

[id] = 1

[a] = v

[b] = w

[c] = i

)

占用內(nèi)存大?。?45544

Array

(

[id] = 2

[a] = b

[b] = l

[c] = q

)

占用內(nèi)存大?。?45544

Array

(

[id] = 3

[a] = m

[b] = p

[c] = h

)

占用內(nèi)存大小:145536

Array

(

[id] = 4

[a] = j

[b] = i

[c] = b

)

占用內(nèi)存大?。?45536

可以看到,這時返回一條數(shù)據(jù)內(nèi)存占用非常的小,也就700多字節(jié),這樣就不會出現(xiàn)超出內(nèi)存的錯誤了。

php處理大量數(shù)據(jù)時,運(yùn)行到一定時間就中斷了,請問如何解決

php處理數(shù)據(jù)時會有一個等待時間,就是所說的超時時間,而且如果使用mysql的話,它也有一個超時時間,運(yùn)行一串代碼時間如果超過配置文件的時間,會被中斷不運(yùn)行。第一種你可以修改php配置文件timeout的運(yùn)行時間,第二你可以分批處理大量數(shù)據(jù),注意是分批處理,就OK了。

php怎么導(dǎo)出大量數(shù)據(jù)的Excel

php導(dǎo)出大量數(shù)據(jù)Excel的具體操作步驟如下:

1、使用phpstudy搭建一個測試平臺,直接訪問數(shù)據(jù)庫。

2、下載的phpcms安裝包拷貝到IIS目錄,開通訪問,即可搭建成功。

3、登錄網(wǎng)站后臺,系統(tǒng)權(quán)限,文件目錄以及數(shù)據(jù)庫等功能,進(jìn)行管理。

4、在phpcms后臺,擴(kuò)展,數(shù)據(jù)庫工具,數(shù)據(jù)庫導(dǎo)出,程序池選擇phpcmsv9,開始備份數(shù)據(jù)。

5、打開IIS網(wǎng)站目錄,在D:\wwwroot\kmxy\wwwroot\caches\bakup\default文件夾,查看導(dǎo)出的數(shù)據(jù)庫文件。

6、登錄phpmyadmin,選擇數(shù)據(jù)庫導(dǎo)出,選擇Excel格式,即可導(dǎo)出。


分享文章:php處理大量數(shù)據(jù) php yield 處理大數(shù)據(jù)
文章URL:http://weahome.cn/article/ddjgipo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部